From 84402d2a4af4b3711c377990d14f539cc7c3fd33 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 7 Mar 2023 17:18:59 -0600 Subject: [PATCH] added: syntax highlighting for `dyn_str`; bugfix: array.insert --- core/container/array.onyx | 2 +- core/string/string.onyx | 5 ++++- misc/onyx-mode.el | 2 +- misc/onyx.sublime-syntax | 2 +- misc/onyx.vim | 2 +- misc/vscode/onyx-0.1.5.vsix | Bin 1531258 -> 1531262 bytes misc/vscode/syntaxes/onyx.tmLanguage | 2 +- tests/bugs/print_formatters | 5 +++++ tests/bugs/print_formatters.onyx | 10 ++++++++++ tests/dyn_str | 0 tests/dyn_str.onyx | 15 +++++++++++++++ 11 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 tests/bugs/print_formatters create mode 100644 tests/bugs/print_formatters.onyx create mode 100644 tests/dyn_str create mode 100644 tests/dyn_str.onyx diff --git a/core/container/array.onyx b/core/container/array.onyx index cfe352e6..340eeae8 100644 --- a/core/container/array.onyx +++ b/core/container/array.onyx @@ -140,7 +140,7 @@ insert :: (arr: &[..] $T, idx: u32, new_arr: [] T) -> bool { arr.count += new_arr.count; while i := arr.count; i > idx { - arr.data[i] = arr.data[i - 1]; + arr.data[i] = arr.data[i - new_arr.count]; i -= 1; } diff --git a/core/string/string.onyx b/core/string/string.onyx index 4295c327..ba6e4c66 100644 --- a/core/string/string.onyx +++ b/core/string/string.onyx @@ -16,7 +16,10 @@ as_str :: macro (t: $T/HasAsStrMethod) -> str { -free :: (s: str, allocator := context.allocator) do raw_free(allocator, s.data); +free :: #match #locked { + (s: str, allocator := context.allocator) { raw_free(allocator, s.data); }, + (s: &dyn_str) { core.array.free(s); }, +} alloc_copy :: (original: str, allocator := context.allocator) -> str { if original.count == 0 do return .{}; diff --git a/misc/onyx-mode.el b/misc/onyx-mode.el index 73edbfd3..5f8e5ab6 100644 --- a/misc/onyx-mode.el +++ b/misc/onyx-mode.el @@ -52,7 +52,7 @@ (defconst onyx-typenames '("u64" "u32" "u16" "u8" "i64" "i32" "i16" "i8" - "f32" "f64" "str" "cstr" "any" "type_expr" + "f32" "f64" "str" "cstr" "dyn_str" "any" "type_expr" "bool" "void" "rawptr" "i8x16" "i16x8" "i32x4" "i64x2" "f32x4" "f64x2" "v128")) diff --git a/misc/onyx.sublime-syntax b/misc/onyx.sublime-syntax index ccce2161..1bbf0fea 100644 --- a/misc/onyx.sublime-syntax +++ b/misc/onyx.sublime-syntax @@ -32,7 +32,7 @@ contexts: - match: '\b(package|struct|interface|use|where|global|enum|if|elseif|else|for|while|do|break|continue|fallthrough|return|cast|sizeof|alignof|typeof|defer|switch|case|macro)\b' scope: keyword.control.onyx - - match: '\b(bool|void|i8|u8|i16|u16|i32|u32|i64|u64|f32|f64|rawptr|str|cstr|range|type_expr|any)\b' + - match: '\b(bool|void|i8|u8|i16|u16|i32|u32|i64|u64|f32|f64|rawptr|str|cstr|dyn_str|range|type_expr|any)\b' scope: storage.type - match: '\b(i8x16|i16x8|i32x4|i64x2|f32x4|f64x2|v128)\b' diff --git a/misc/onyx.vim b/misc/onyx.vim index 4d90cba9..53eccd91 100644 --- a/misc/onyx.vim +++ b/misc/onyx.vim @@ -23,7 +23,7 @@ syn keyword onyxType i32 u32 syn keyword onyxType i64 u64 syn keyword onyxType f32 f64 syn keyword onyxType rawptr -syn keyword onyxType str cstr +syn keyword onyxType str cstr dyn_str syn keyword onyxType i8x16 i16x8 i32x4 i64x2 f32x4 f64x2 v128 syn keyword onyxType type_expr any diff --git a/misc/vscode/onyx-0.1.5.vsix b/misc/vscode/onyx-0.1.5.vsix index ddeb2156d4911dfaf64a4365e8a34ea2edfb5df9..82722466d1202c47bded8a01025f07baa107567a 100644 GIT binary patch delta 12138 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 F{{c92-eCX$ delta 11842 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 diff --git a/misc/vscode/syntaxes/onyx.tmLanguage b/misc/vscode/syntaxes/onyx.tmLanguage index 43605084..aa669a9b 100644 --- a/misc/vscode/syntaxes/onyx.tmLanguage +++ b/misc/vscode/syntaxes/onyx.tmLanguage @@ -271,7 +271,7 @@ match - \b(str|cstr|type_expr|any)\b + \b(str|cstr|dyn_str|type_expr|any)\b name storage.type.onyx diff --git a/tests/bugs/print_formatters b/tests/bugs/print_formatters new file mode 100644 index 00000000..5867894e --- /dev/null +++ b/tests/bugs/print_formatters @@ -0,0 +1,5 @@ +{ +Hello{}World +Hello{}World +}{hello}{ +}3R{ diff --git a/tests/bugs/print_formatters.onyx b/tests/bugs/print_formatters.onyx new file mode 100644 index 00000000..ccd5ecf6 --- /dev/null +++ b/tests/bugs/print_formatters.onyx @@ -0,0 +1,10 @@ +use core + +main :: () { + printf("{\n"); + printf("Hello{"); + printf("}World\n"); + printf("Hello{{}}World\n"); + printf("}{hello}{\n", 123); + printf("}{b32}{\n", 123); +} \ No newline at end of file diff --git a/tests/dyn_str b/tests/dyn_str new file mode 100644 index 00000000..e69de29b diff --git a/tests/dyn_str.onyx b/tests/dyn_str.onyx new file mode 100644 index 00000000..1918c79b --- /dev/null +++ b/tests/dyn_str.onyx @@ -0,0 +1,15 @@ +use core + + +main :: () { + output: dyn_str; + defer string.free(&output); + + string.append(&output, "Hello"); + string.append(&output, "World"); + string.append(&output, "!"); + + string.insert(&output, 5, ", "); + + println(output); +} \ No newline at end of file -- 2.25.1