aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/check.odin19
-rw-r--r--src/server/requests.odin8
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
}