diff --git a/java b/java index 3530822..a7577f4 100644 --- a/java +++ b/java @@ -23,7 +23,7 @@ class Java(LspServer): self.path = arguments[0] super().__init__([ "java", - f"-javaagent:{locate_lombok}", + f"-javaagent:{locate_lombok()}", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044", "-Declipse.application=org.eclipse.jdt.ls.core.id1", "-Dosgi.bundles.defaultStartLevel=4", @@ -40,7 +40,7 @@ class Java(LspServer): @command("java.apply.workspaceEdit") def workspaceEdit (self, arguments): - print(f"we {arguments}") + print(f"we {arguments}", file=sys.stderr) for argument in arguments: for file_name, changes in argument['changes'].items(): file_name = file_name[len(FILE_URI):] @@ -59,11 +59,12 @@ class Java(LspServer): def get_character_offset (file_contents, line, character): line_pos = 0 while line > 0: - line_pos = file_contents.index("\n", line_pos + 1) + line_pos = file_contents.index("\n", line_pos) + 1 line = line - 1 return line_pos + character def perform_change (file_text, change): - change_start = get_character_offset(file_text, change['range']['start']['character'], change['range']['start']['character']) + change_start = get_character_offset(file_text, change['range']['start']['line'], change['range']['start']['character']) change_end = get_character_offset(file_text, change['range']['end']['line'], change['range']['end']['character']) + print(f"change {change_start} {change['newText']} {change_end}", file=sys.stderr) return file_text[:change_start] + change['newText'] + file_text[change_end:]