-
Notifications
You must be signed in to change notification settings - Fork 198
/
sts-adapter.ts
38 lines (29 loc) · 1.08 KB
/
sts-adapter.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import {Convert} from 'atom-languageclient';
import {AtomEnvironment, TextEditor} from 'atom';
import {Position, CodeLens, TextDocumentIdentifier} from 'vscode-languageserver-protocol';
export class StsAdapter {
constructor() {}
findEditors(uri: string): TextEditor[] {
const atomEnv: AtomEnvironment = atom;
return atomEnv.workspace.getTextEditors()
.filter(e => e && e.getPath() && Convert.pathToUri(e.getPath() || '') === uri);
}
onMoveCursor(params: CursorMovementParams): any {
this.findEditors(params.uri).forEach(e => e.setCursorScreenPosition(Convert.positionToPoint(params.position)));
return {applied: true};
}
onProgress(params: ProgressParams): void {}
onHighlight(params: HighlightParams): void {}
}
export interface CursorMovementParams {
readonly uri: string;
readonly position: Position;
}
export interface ProgressParams {
readonly id: string;
readonly statusMsg: string;
}
export interface HighlightParams {
readonly doc: TextDocumentIdentifier;
readonly codeLenses: CodeLens[];
}