@@ -41,7 +41,6 @@ class LuaWorkspaceService : WorkspaceService, IWorkspace {
4141 private val schemeMap = mutableMapOf<String , IFolder >()
4242 private val configurationManager = ConfigurationManager ()
4343 private var client: LuaLanguageClient ? = null
44- private var configVersion = 0
4544 private val project: Project = WProject ()
4645 private val fileManager = FileManager (project)
4746 private val fileScopeProvider = WorkspaceRootFileScopeProvider ()
@@ -86,7 +85,6 @@ class LuaWorkspaceService : WorkspaceService, IWorkspace {
8685 override fun didChangeConfiguration (params : DidChangeConfigurationParams ) {
8786 val settings = params.settings as ? JsonObject ? : return
8887 val ret = VSCodeSettings .update(settings)
89- ++ configVersion
9088 if (ret.associationChanged || initWorkspace) {
9189 initWorkspace = false
9290 loadWorkspace()
@@ -116,7 +114,6 @@ class LuaWorkspaceService : WorkspaceService, IWorkspace {
116114
117115 @JsonRequest(" emmy/updateConfig" )
118116 fun updateConfig (params : UpdateConfigParams ): CompletableFuture <Void > {
119- ++ configVersion
120117 configurationManager.updateConfiguration(params)
121118 loadWorkspace()
122119 refreshWorkspace()
@@ -161,64 +158,57 @@ class LuaWorkspaceService : WorkspaceService, IWorkspace {
161158 }
162159 }
163160
164- override fun diagnostic (params : WorkspaceDiagnosticParams ): CompletableFuture <WorkspaceDiagnosticReport > {
165- for (prev in params.previousResultIds) {
166- val file = findFile(prev.uri)
167- if (file is LuaFile ) {
168- file.workspaceDiagnosticResultId = prev.value
169- }
170- }
171-
172- val files = mutableListOf<LuaFile >()
173- project.process {
174- val file = it.virtualFile
175- if (file is LuaFile ) {
176- files.add(file)
177- }
178- true
179- }
180-
181- val workspaceConfigVersion = configVersion
182-
183- return computeAsync { checker ->
184- for (luaFile in files) {
185- luaFile.lock {
186- val documentReport = diagnoseFile(luaFile, luaFile.workspaceDiagnosticResultId, checker)
187- if (documentReport.isRelatedFullDocumentDiagnosticReport) {
188- val workspaceItemReport = WorkspaceFullDocumentDiagnosticReport (
189- documentReport.relatedFullDocumentDiagnosticReport.items,
190- luaFile.uri.toString(),
191- null
192- )
193-
194- workspaceItemReport.resultId = documentReport.relatedFullDocumentDiagnosticReport.resultId
195- val report = WorkspaceDiagnosticReportPartialResult (
196- listOf (WorkspaceDocumentDiagnosticReport (workspaceItemReport))
197- )
198- client?.notifyProgress(ProgressParams (params.partialResultToken, Either .forRight(report)))
199- } else if (documentReport.isRelatedUnchangedDocumentDiagnosticReport) {
200- val workspaceItemReport = WorkspaceUnchangedDocumentDiagnosticReport (
201- documentReport.relatedUnchangedDocumentDiagnosticReport.resultId,
202- luaFile.uri.toString(),
203- null
204- )
205- val report = WorkspaceDiagnosticReportPartialResult (
206- listOf (WorkspaceDocumentDiagnosticReport (workspaceItemReport))
207- )
208- client?.notifyProgress(ProgressParams (params.partialResultToken, Either .forRight(report)))
209- }
210- }
211- }
212-
213- // 如果配置版本发生变更则中断无限循环
214- while (workspaceConfigVersion == configVersion) {
215- Thread .sleep(1000 )
216- }
217-
218- val empty = WorkspaceDiagnosticReport (emptyList())
219- empty
220- }
221- }
161+ // override fun diagnostic(params: WorkspaceDiagnosticParams): CompletableFuture<WorkspaceDiagnosticReport> {
162+ // for (prev in params.previousResultIds) {
163+ // val file = findFile(prev.uri)
164+ // if (file is LuaFile) {
165+ // file.workspaceDiagnosticResultId = prev.value
166+ // }
167+ // }
168+ //
169+ // val files = mutableListOf<LuaFile>()
170+ // project.process {
171+ // val file = it.virtualFile
172+ // if (file is LuaFile) {
173+ // files.add(file)
174+ // }
175+ // true
176+ // }
177+ //
178+ // return computeAsync { checker ->
179+ // for (luaFile in files) {
180+ // luaFile.lock {
181+ // val documentReport = diagnoseFile(luaFile, luaFile.workspaceDiagnosticResultId, checker)
182+ // if (documentReport.isRelatedFullDocumentDiagnosticReport) {
183+ // val workspaceItemReport = WorkspaceFullDocumentDiagnosticReport(
184+ // documentReport.relatedFullDocumentDiagnosticReport.items,
185+ // luaFile.uri.toString(),
186+ // null
187+ // )
188+ //
189+ // workspaceItemReport.resultId = documentReport.relatedFullDocumentDiagnosticReport.resultId
190+ // val report = WorkspaceDiagnosticReportPartialResult(
191+ // listOf(WorkspaceDocumentDiagnosticReport(workspaceItemReport))
192+ // )
193+ // client?.notifyProgress(ProgressParams(params.partialResultToken, Either.forRight(report)))
194+ // } else if (documentReport.isRelatedUnchangedDocumentDiagnosticReport) {
195+ // val workspaceItemReport = WorkspaceUnchangedDocumentDiagnosticReport(
196+ // documentReport.relatedUnchangedDocumentDiagnosticReport.resultId,
197+ // luaFile.uri.toString(),
198+ // null
199+ // )
200+ // val report = WorkspaceDiagnosticReportPartialResult(
201+ // listOf(WorkspaceDocumentDiagnosticReport(workspaceItemReport))
202+ // )
203+ // client?.notifyProgress(ProgressParams(params.partialResultToken, Either.forRight(report)))
204+ // }
205+ // }
206+ // }
207+ //
208+ // val empty = WorkspaceDiagnosticReport(emptyList())
209+ // empty
210+ // }
211+ // }
222212
223213 private fun getSchemeFolder (path : FileURI , autoCreate : Boolean ): IFolder ? {
224214 var folder: IFolder ? = schemeMap[path.scheme]
@@ -317,21 +307,13 @@ class LuaWorkspaceService : WorkspaceService, IWorkspace {
317307 }
318308
319309 fun diagnoseFile (file : ILuaFile , previousId : String? , checker : CancelChecker ? ): DocumentDiagnosticReport {
320- val fileVersion = file.getVersion()
321- val resultId = " $fileVersion |$configVersion "
322- if (previousId != null && resultId == previousId) {
323- return DocumentDiagnosticReport (RelatedUnchangedDocumentDiagnosticReport (resultId))
324- }
325-
326310 val diagnostics = mutableListOf<Diagnostic >()
327311
328312 if (file is LuaFile ) {
329313 file.diagnostic(diagnostics, checker)
330314 }
331315
332- val report = DocumentDiagnosticReport (RelatedFullDocumentDiagnosticReport (diagnostics))
333- report.relatedFullDocumentDiagnosticReport.resultId = resultId
334- return report
316+ return DocumentDiagnosticReport (RelatedFullDocumentDiagnosticReport (diagnostics))
335317 }
336318
337319 private fun loadWorkspace (monitor : IProgressMonitor ) {
0 commit comments