Files
spring-tools/atom-extensions/atom-commons/lib/sts-adapter.ts
2018-03-08 19:19:26 -05:00

39 lines
1.1 KiB
TypeScript

import {Convert} from 'atom-languageclient';
import {AtomEnvironment, TextEditor} from 'atom';
import {Position, Range, 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 ranges: Range[];
}