LSP jump to definition

This commit is contained in:
2026-02-12 21:59:56 -08:00
parent ab33635642
commit e1d83556ae
6 changed files with 44 additions and 22 deletions

View File

@@ -15,6 +15,7 @@ import {
InitializeParams,
InitializeResult,
TextDocumentSyncKind,
Location,
} from "vscode-languageserver/node";
import { TextDocument } from "vscode-languageserver-textdocument";
@@ -69,16 +70,25 @@ connection.onHover((params): Hover | null => {
const uri = params.textDocument.uri;
const pos = params.position;
console.log('HOVER', uri, pos)
let value = LSP_hoverInfo(uri, pos.line, pos.character)
if (!value) return null
console.log('HOVER is ', value)
return { contents: { kind: "plaintext", value } };
let res = LSP_hoverInfo(uri, pos.line, pos.character)
if (!res) return null
console.log('HOVER is ', res)
return { contents: { kind: "plaintext", value: res.info } };
});
connection.onDefinition((params): Location | null => {
const uri = params.textDocument.uri;
const pos = params.position;
let value = LSP_hoverInfo(uri, pos.line, pos.character)
if (!value) return null;
return value.location
})
connection.onInitialize((_params: InitializeParams): InitializeResult => ({
capabilities: {
textDocumentSync: TextDocumentSyncKind.Incremental,
hoverProvider: true,
definitionProvider: true,
},
}));

View File

@@ -1,5 +1,9 @@
import { Diagnostic } from "vscode-languageserver";
import { Diagnostic, Location } from "vscode-languageserver";
export function LSP_updateFile(name: string, content: string): (eta: any) => any;
export function LSP_checkFile(name: string): Diagnostic[];
export function LSP_hoverInfo(name: string, row: number, col: number): string|null;
interface HoverResult {
info: string
location: Location
}
export function LSP_hoverInfo(name: string, row: number, col: number): HoverResult|null;