diff --git a/src/haxeLanguageServer/Configuration.hx b/src/haxeLanguageServer/Configuration.hx index f28026c9..d4f92ec8 100644 --- a/src/haxeLanguageServer/Configuration.hx +++ b/src/haxeLanguageServer/Configuration.hx @@ -95,6 +95,7 @@ typedef UserConfig = { var buildCompletionCache:Bool; var enableCompletionCacheWarning:Bool; var useLegacyCompletion:Bool; + var useLegacyDiagnostics:Bool; var codeGeneration:CodeGenerationConfig; var exclude:Array; var postfixCompletion:PostfixCompletionConfig; @@ -164,6 +165,7 @@ class Configuration { buildCompletionCache: true, enableCompletionCacheWarning: true, useLegacyCompletion: false, + useLegacyDiagnostics: false, codeGeneration: { functions: { anonymous: { diff --git a/src/haxeLanguageServer/features/haxe/DiagnosticsFeature.hx b/src/haxeLanguageServer/features/haxe/DiagnosticsFeature.hx index 71430b6b..87e8bab2 100644 --- a/src/haxeLanguageServer/features/haxe/DiagnosticsFeature.hx +++ b/src/haxeLanguageServer/features/haxe/DiagnosticsFeature.hx @@ -9,6 +9,7 @@ import haxe.ds.BalancedTree; import haxe.io.Path; import haxeLanguageServer.LanguageServerMethods; import haxeLanguageServer.helper.PathHelper; +import haxeLanguageServer.helper.SemVer; import haxeLanguageServer.protocol.DisplayPrinter; import haxeLanguageServer.server.DisplayResult; import js.Node.clearImmediate; @@ -45,6 +46,9 @@ class DiagnosticsFeature { errorUri = new FsPath(Path.join([context.workspacePath.toString(), "Error"])).toUri(); useJsonRpc = context.haxeServer.supports(DisplayMethods.Diagnostics); + if (context.config.user.useLegacyDiagnostics) { + useJsonRpc = false; + } timerName = useJsonRpc ? DisplayMethods.Diagnostics : "@diagnostics"; ChildProcess.exec(context.config.haxelib.executable + " config", (error, stdout, stderr) -> haxelibPath = new FsPath(stdout.trim())); diff --git a/src/haxeLanguageServer/helper/SemVer.hx b/src/haxeLanguageServer/helper/SemVer.hx index c5b2bc68..8ac06275 100644 --- a/src/haxeLanguageServer/helper/SemVer.hx +++ b/src/haxeLanguageServer/helper/SemVer.hx @@ -63,6 +63,10 @@ abstract SemVer(Version) from Version { return isEqual(other) || isGreaterThan(other); } + @:op(a < b) function isLessThan(other:SemVer):Bool { + return !isEqualOrGreaterThan(other); + } + @:op(a > b) function isGreaterThan(other:SemVer):Bool { return (major > other.major) || (major == other.major && minor > other.minor)