Skip to content

Commit

Permalink
Add uri param to parseDocumentSymbols
Browse files Browse the repository at this point in the history
  • Loading branch information
cooolbros committed Mar 21, 2024
1 parent ba6c7fa commit 28c197e
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 11 deletions.
8 changes: 4 additions & 4 deletions packages/lib/server/LanguageServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export abstract class LanguageServer<T extends DocumentSymbol[]> {
let documentSymbols: T
let diagnostics: VDFSyntaxError | Diagnostic[] = []
try {
documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(e.document.getText())
documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(e.document.uri, e.document.getText())
this.documentsSymbols.set(e.document.uri, documentSymbols)
diagnostics = await this.validateTextDocument(e.document.uri, documentSymbols)
}
Expand Down Expand Up @@ -97,7 +97,7 @@ export abstract class LanguageServer<T extends DocumentSymbol[]> {
const shouldSendDiagnostics = documentConfiguration.updateDiagnosticsEvent == "type"

try {
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(e.document.getText())
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(e.document.uri, e.document.getText())
this.documentsSymbols.set(e.document.uri, documentSymbols)
const diagnostics = await this.validateTextDocument(e.document.uri, documentSymbols)
if (shouldSendDiagnostics) {
Expand Down Expand Up @@ -132,7 +132,7 @@ export abstract class LanguageServer<T extends DocumentSymbol[]> {
}

try {
this.languageServerConfiguration.parseDocumentSymbols(e.document.getText())
this.languageServerConfiguration.parseDocumentSymbols(e.document.uri, e.document.getText())
this.connection.sendDiagnostics({
uri: e.document.uri,
diagnostics: []
Expand Down Expand Up @@ -174,7 +174,7 @@ export abstract class LanguageServer<T extends DocumentSymbol[]> {
private async onDocumentSymbol(params: DocumentSymbolParams): Promise<DocumentSymbol[] | undefined> {

if (!this.documentsSymbols.has(params.textDocument.uri)) {
this.documentsSymbols.set(params.textDocument.uri, this.languageServerConfiguration.parseDocumentSymbols(await this.fileSystem.readFile(params.textDocument.uri)))
this.documentsSymbols.set(params.textDocument.uri, this.languageServerConfiguration.parseDocumentSymbols(params.textDocument.uri, await this.fileSystem.readFile(params.textDocument.uri)))
}

return this.documentsSymbols.get(params.textDocument.uri)
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/server/LanguageServerConfiguration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ import type { DocumentSymbol } from "vscode-languageserver"

export interface LanguageServerConfiguration<T extends DocumentSymbol[]> {
servers?: (keyof typeof languageClientsInfo)[]
parseDocumentSymbols(str: string, ...args: any): T
parseDocumentSymbols(uri: string, str: string, ...args: any): T
defaultDocumentSymbols(): T
}
8 changes: 4 additions & 4 deletions packages/lib/server/VDF/VDFLanguageServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export abstract class VDFLanguageServer extends LanguageServer<VDFDocumentSymbol
constructor(name: VDFLanguageServer["name"], languageId: VDFLanguageServer["languageId"], connection: Connection, configuration: VDFLanguageServerConfiguration) {
super(name, languageId, connection, {
servers: configuration.servers,
parseDocumentSymbols: getVDFDocumentSymbols,
parseDocumentSymbols: (uri, str) => getVDFDocumentSymbols(str),
defaultDocumentSymbols: () => new VDFDocumentSymbols()
})

Expand Down Expand Up @@ -354,7 +354,7 @@ export abstract class VDFLanguageServer extends LanguageServer<VDFDocumentSymbol
const baseDocumentSymbols = this.documentsSymbols.has(baseUri)
? this.documentsSymbols.get(baseUri)!
: await (async (): Promise<VDFDocumentSymbols> => {
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(await this.fileSystem.readFile(baseUri))
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(baseUri, await this.fileSystem.readFile(baseUri))
this.documentsSymbols.set(baseUri, documentSymbols)
return documentSymbols
})()
Expand Down Expand Up @@ -1072,7 +1072,7 @@ export abstract class VDFLanguageServer extends LanguageServer<VDFDocumentSymbol
const { uri } = await z.object({ uri: z.string() }).parseAsync(params)

const documentSymbols = this.documentsSymbols.get(uri)
?? this.languageServerConfiguration.parseDocumentSymbols(await this.fileSystem.readFile(uri))
?? this.languageServerConfiguration.parseDocumentSymbols(uri, await this.fileSystem.readFile(uri))

const keys: string[] = []

Expand All @@ -1096,7 +1096,7 @@ export abstract class VDFLanguageServer extends LanguageServer<VDFDocumentSymbol

try {
const documentSymbols = this.documentsSymbols.get(uri)
?? this.languageServerConfiguration.parseDocumentSymbols(await this.fileSystem.readFile(uri))
?? this.languageServerConfiguration.parseDocumentSymbols(uri, await this.fileSystem.readFile(uri))

const documentSymbol = documentSymbols.findRecursive((documentSymbol) => documentSymbol.key.toLowerCase() == key)
if (!documentSymbol) {
Expand Down
4 changes: 2 additions & 2 deletions packages/lib/server/VDF/VGUI/VGUILanguageServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ export class VGUILanguageServer extends VDFLanguageServer {
file
.then((text) => {
try {
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(text)
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(entryUri, text)
this.updateReferences(documentDefinitionReferences, entryUri, documentSymbols)
}
catch (error: any) {
Expand Down Expand Up @@ -312,7 +312,7 @@ export class VGUILanguageServer extends VDFLanguageServer {

const documentSymbols = this.documentsSymbols.get(uri)
?? await (async (): Promise<VDFDocumentSymbols> => {
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(await this.fileSystem.readFile(uri), { allowMultilineStrings })
const documentSymbols = this.languageServerConfiguration.parseDocumentSymbols(uri, await this.fileSystem.readFile(uri), { allowMultilineStrings })
this.documentsSymbols.set(uri, documentSymbols)
return documentSymbols
})()
Expand Down

0 comments on commit 28c197e

Please sign in to comment.