diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2024-02-07 18:59:20 +0100 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2024-02-07 18:59:20 +0100 |
| commit | 3e612a42670e1b581ece6f4a90382e0d830f3ef2 (patch) | |
| tree | e54886494465f61e008ad63522e6db5646acbefb | |
| parent | 06f69460c3e70ad30648036a6a72a9f160e04fd4 (diff) | |
Improve checker
| -rw-r--r-- | src/server/check.odin | 19 | ||||
| -rw-r--r-- | src/server/requests.odin | 8 |
2 files changed, 24 insertions, 3 deletions
diff --git a/src/server/check.odin b/src/server/check.odin index 51640b3..9e6de6b 100644 --- a/src/server/check.odin +++ b/src/server/check.odin @@ -49,7 +49,7 @@ check :: proc(uri: common.Uri, writer: ^Writer, config: ^common.Config) { fmt.tprintf( "%v check %s %s -no-entry-point %s %s", command, - path.dir(uri.path, context.temp_allocator), + uri.path, strings.to_string(collection_builder), config.checker_args, ODIN_OS == .Linux || ODIN_OS == .Darwin ? "2>&1" : "", @@ -64,6 +64,17 @@ check :: proc(uri: common.Uri, writer: ^Writer, config: ^common.Config) { return } + log.error( + fmt.tprintf( + "%v check %s %s -no-entry-point %s %s", + command, + path.dir(uri.path, context.temp_allocator), + strings.to_string(collection_builder), + config.checker_args, + ODIN_OS == .Linux || ODIN_OS == .Darwin ? "2>&1" : "", + ), + ) + s: scanner.Scanner scanner.init(&s, string(buffer)) @@ -185,6 +196,12 @@ check :: proc(uri: common.Uri, writer: ^Writer, config: ^common.Config) { errors := make(map[string][dynamic]Diagnostic, 0, context.temp_allocator) for error in error_seperators { + if strings.contains( + error.message, + "Redeclaration of 'main' in this scope", + ) { + continue + } if error.uri not_in errors { errors[error.uri] = make( diff --git a/src/server/requests.odin b/src/server/requests.odin index afe54da..35a2865 100644 --- a/src/server/requests.odin +++ b/src/server/requests.odin @@ -1146,8 +1146,12 @@ notification_did_save :: proc( log.errorf("failed to collect symbols on save %v", ret) } - - check(uri, writer, config) + if uri, ok := common.parse_uri( + config.workspace_folders[0].uri, + context.temp_allocator, + ); ok { + check(uri, writer, config) + } return .None } |