aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/position.odin6
-rw-r--r--src/server/diagnostics.odin1
2 files changed, 5 insertions, 2 deletions
diff --git a/src/common/position.odin b/src/common/position.odin
index 4d01f58..2ea9e20 100644
--- a/src/common/position.odin
+++ b/src/common/position.odin
@@ -159,6 +159,10 @@ get_absolute_range :: proc(range: Range, document_text: []u8) -> (AbsoluteRange,
line_count := 0
index := 1
last := document_text[0]
+ if last == '\n' {
+ // if we start with a new line, we set the index back to 0 to ensure it gets accounted for
+ index = 0
+ }
if !get_index_at_line(&index, &line_count, &last, document_text, range.start.line) {
return absolute, false
@@ -168,7 +172,7 @@ get_absolute_range :: proc(range: Range, document_text: []u8) -> (AbsoluteRange,
//if the last line was indexed at zero we have to move it back to index 1.
//This happens when line = 0
- if index == 0 {
+ if index == 0 && last != '\n' {
index = 1
}
diff --git a/src/server/diagnostics.odin b/src/server/diagnostics.odin
index 411ffbc..821aa74 100644
--- a/src/server/diagnostics.odin
+++ b/src/server/diagnostics.odin
@@ -3,7 +3,6 @@ package server
import "core:log"
import "core:slice"
import "core:strings"
-import "src:common"
DiagnosticType :: enum {
Syntax,