Skip to content

Commit 21a5711

Browse files
abogoyavlenskyavli
authored andcommitted
Fix completion at the middle of a line (#140)
1 parent 429899b commit 21a5711

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

src/clojureSuggest.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ export class ClojureCompletionItemProvider implements vscode.CompletionItemProvi
2323
if (!cljConnection.isConnected())
2424
return Promise.reject('No nREPL connected.');
2525

26-
// TODO: Use VSCode means for getting a current word
27-
let lineText = document.lineAt(position.line).text;
28-
let words: string[] = lineText.split(' ');
29-
let currentWord = words[words.length - 1].replace(/^[\('\[\{]+|[\)\]\}]+$/g, '');
30-
let text = document.getText()
31-
let ns = cljParser.getNamespace(text);
26+
const wordRange = document.getWordRangeAtPosition(position);
27+
if (!wordRange)
28+
return Promise.reject('No word selected.');
3229

33-
let currentWordLength: number = currentWord.length;
30+
const line = document.lineAt(position.line),
31+
currentWord = line.text.slice(wordRange.start.character, wordRange.end.character),
32+
ns = cljParser.getNamespace(document.getText());
3433

3534
let buildInsertText = (suggestion: string) => {
3635
return suggestion[0] === '.' ? suggestion.slice(1) : suggestion;

0 commit comments

Comments
 (0)