diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 9e1a9045b..7a4759621 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -112,8 +112,8 @@ | iex | ✓ | | | | | | ini | ✓ | | | | | | ink | ✓ | | | | | -| inko | ✓ | ✓ | ✓ | | | -| janet | ✓ | | | | | +| inko | ✓ | ✓ | ✓ | ✓ | | +| janet | ✓ | | ✓ | | | | java | ✓ | ✓ | ✓ | | `jdtls` | | javascript | ✓ | ✓ | ✓ | ✓ | `typescript-language-server` | | jinja | ✓ | | | | | diff --git a/languages.toml b/languages.toml index 96eae3d11..1fb13f05a 100644 --- a/languages.toml +++ b/languages.toml @@ -65,6 +65,7 @@ julia = { command = "julia", timeout = 60, args = [ "--startup-file=no", "--hist just-lsp = { command = "just-lsp" } koka = { command = "koka", args = ["--language-server", "--lsstdio"] } koto-ls = { command = "koto-ls" } +kotlin-lsp = { command = "kotlin-lsp", args = ["--stdio"] } kotlin-language-server = { command = "kotlin-language-server" } lean = { command = "lean", args = [ "--server", "--memory=1024" ] } ltex-ls = { command = "ltex-ls" } @@ -3068,7 +3069,7 @@ formatter = { command = "inko", args = ["fmt", "-"] } [[grammar]] name = "inko" -source = { git = "https://github.com/inko-lang/tree-sitter-inko", rev = "7860637ce1b43f5f79cfb7cc3311bf3234e9479f" } +source = { git = "https://github.com/inko-lang/tree-sitter-inko", rev = "f58a87ac4dc6a7955c64c9e4408fbd693e804686" } [[language]] name = "bicep" @@ -3422,7 +3423,7 @@ language-servers = ["just-lsp"] [[grammar]] name = "just" -source = { git = "https://github.com/poliorcetics/tree-sitter-just", rev = "8d03cfdd7ab89ff76d935827de1b93450fa0ec0a" } +source = { git = "https://github.com/poliorcetics/tree-sitter-just", rev = "0f84211c637813bcf1eb32c9e35847cdaea8760d" } [[language]] name = "gn" diff --git a/runtime/queries/inko/highlights.scm b/runtime/queries/inko/highlights.scm index d5730dce2..44138ef41 100644 --- a/runtime/queries/inko/highlights.scm +++ b/runtime/queries/inko/highlights.scm @@ -78,7 +78,7 @@ ] @keyword.operator [ - "class" + "type" "trait" ] @keyword.storage.type diff --git a/runtime/queries/inko/tags.scm b/runtime/queries/inko/tags.scm new file mode 100644 index 000000000..42dbcfc97 --- /dev/null +++ b/runtime/queries/inko/tags.scm @@ -0,0 +1,14 @@ +(class + name: _ @definition.struct) + +(trait + name: _ @definition.interface) + +(external_function + name: _ @definition.function) + +(method + name: _ @definition.function) + +(define_constant + name: _ @definition.constant) diff --git a/runtime/queries/janet/highlights.scm b/runtime/queries/janet/highlights.scm index 94e4cdce1..0314b196f 100644 --- a/runtime/queries/janet/highlights.scm +++ b/runtime/queries/janet/highlights.scm @@ -24,6 +24,11 @@ . (sym_lit) @function) +;; other calls +(par_tup_lit + . + (sym_lit) @function) + ;; special forms (par_tup_lit . @@ -55,10 +60,6 @@ (#match? @function.builtin "^(%|\\*|\\+|\\-|/|<|<=|=|>|>=|\\.break|\\.breakall|\\.bytecode|\\.clear|\\.clearall|\\.disasm|\\.fiber|\\.fn|\\.frame|\\.locals|\\.next|\\.nextc|\\.ppasm|\\.signal|\\.slot|\\.slots|\\.source|\\.stack|\\.step|abstract\\?|accumulate|accumulate2|all|all\\-bindings|all\\-dynamics|any\\?|apply|array|array/clear|array/concat|array/ensure|array/fill|array/insert|array/new|array/new\\-filled|array/peek|array/pop|array/push|array/remove|array/slice|array/trim|array/weak|array\\?|asm|bad\\-compile|bad\\-parse|band|blshift|bnot|boolean\\?|bor|brshift|brushift|buffer|buffer/bit|buffer/bit\\-clear|buffer/bit\\-set|buffer/bit\\-toggle|buffer/blit|buffer/clear|buffer/fill|buffer/format|buffer/from\\-bytes|buffer/new|buffer/new\\-filled|buffer/popn|buffer/push|buffer/push\\-at|buffer/push\\-byte|buffer/push\\-string|buffer/push\\-word|buffer/slice|buffer/trim|buffer\\?|bxor|bytes\\?|cancel|cfunction\\?|cli\\-main|cmp|comp|compare|compare<|compare<=|compare=|compare>|compare>=|compile|complement|count|curenv|debug|debug/arg\\-stack|debug/break|debug/fbreak|debug/lineage|debug/stack|debug/stacktrace|debug/step|debug/unbreak|debug/unfbreak|debugger|debugger\\-on\\-status|dec|deep\\-not=|deep=|defglobal|describe|dictionary\\?|disasm|distinct|div|doc\\*|doc\\-format|doc\\-of|dofile|drop|drop\\-until|drop\\-while|dyn|eflush|empty\\?|env\\-lookup|eprin|eprinf|eprint|eprintf|error|errorf|ev/acquire\\-lock|ev/acquire\\-rlock|ev/acquire\\-wlock|ev/all\\-tasks|ev/call|ev/cancel|ev/capacity|ev/chan|ev/chan\\-close|ev/chunk|ev/close|ev/count|ev/deadline|ev/full|ev/give|ev/give\\-supervisor|ev/go|ev/lock|ev/read|ev/release\\-lock|ev/release\\-rlock|ev/release\\-wlock|ev/rselect|ev/rwlock|ev/select|ev/sleep|ev/take|ev/thread|ev/thread\\-chan|ev/write|eval|eval\\-string|even\\?|every\\?|extreme|false\\?|ffi/align|ffi/call|ffi/calling\\-conventions|ffi/close|ffi/context|ffi/free|ffi/jitfn|ffi/lookup|ffi/malloc|ffi/native|ffi/pointer\\-buffer|ffi/pointer\\-cfunction|ffi/read|ffi/signature|ffi/size|ffi/struct|ffi/trampoline|ffi/write|fiber/can\\-resume\\?|fiber/current|fiber/getenv|fiber/last\\-value|fiber/maxstack|fiber/new|fiber/root|fiber/setenv|fiber/setmaxstack|fiber/status|fiber\\?|file/close|file/flush|file/lines|file/open|file/read|file/seek|file/tell|file/temp|file/write|filter|find|find\\-index|first|flatten|flatten\\-into|flush|flycheck|freeze|frequencies|from\\-pairs|function\\?|gccollect|gcinterval|gcsetinterval|gensym|get|get\\-in|getline|getproto|group\\-by|has\\-key\\?|has\\-value\\?|hash|idempotent\\?|identity|import\\*|in|inc|index\\-of|indexed\\?|int/s64|int/to\\-bytes|int/to\\-number|int/u64|int\\?|interleave|interpose|invert|juxt\\*|keep|keep\\-syntax|keep\\-syntax!|keys|keyword|keyword/slice|keyword\\?|kvs|last|length|lengthable\\?|load\\-image|macex|macex1|maclintf|make\\-env|make\\-image|map|mapcat|marshal|math/abs|math/acos|math/acosh|math/asin|math/asinh|math/atan|math/atan2|math/atanh|math/cbrt|math/ceil|math/cos|math/cosh|math/erf|math/erfc|math/exp|math/exp2|math/expm1|math/floor|math/gamma|math/gcd|math/hypot|math/lcm|math/log|math/log\\-gamma|math/log10|math/log1p|math/log2|math/next|math/pow|math/random|math/rng|math/rng\\-buffer|math/rng\\-int|math/rng\\-uniform|math/round|math/seedrandom|math/sin|math/sinh|math/sqrt|math/tan|math/tanh|math/trunc|max|max\\-of|mean|memcmp|merge|merge\\-into|merge\\-module|min|min\\-of|mod|module/add\\-paths|module/expand\\-path|module/find|module/value|nan\\?|nat\\?|native|neg\\?|net/accept|net/accept\\-loop|net/address|net/address\\-unpack|net/chunk|net/close|net/connect|net/flush|net/listen|net/localname|net/peername|net/read|net/recv\\-from|net/send\\-to|net/server|net/setsockopt|net/shutdown|net/write|next|nil\\?|not|not=|number\\?|odd\\?|one\\?|os/arch|os/cd|os/chmod|os/clock|os/compiler|os/cpu\\-count|os/cryptorand|os/cwd|os/date|os/dir|os/environ|os/execute|os/exit|os/getenv|os/isatty|os/link|os/lstat|os/mkdir|os/mktime|os/open|os/perm\\-int|os/perm\\-string|os/pipe|os/posix\\-exec|os/posix\\-fork|os/proc\\-close|os/proc\\-kill|os/proc\\-wait|os/readlink|os/realpath|os/rename|os/rm|os/rmdir|os/setenv|os/shell|os/sigaction|os/sleep|os/spawn|os/stat|os/strftime|os/symlink|os/time|os/touch|os/umask|os/which|pairs|parse|parse\\-all|parser/byte|parser/clone|parser/consume|parser/eof|parser/error|parser/flush|parser/has\\-more|parser/insert|parser/new|parser/produce|parser/state|parser/status|parser/where|partial|partition|partition\\-by|peg/compile|peg/find|peg/find\\-all|peg/match|peg/replace|peg/replace\\-all|pos\\?|postwalk|pp|prewalk|prin|prinf|print|printf|product|propagate|put|put\\-in|quit|range|reduce|reduce2|repl|require|resume|return|reverse|reverse!|run\\-context|sandbox|scan\\-number|setdyn|signal|slice|slurp|some|sort|sort\\-by|sorted|sorted\\-by|spit|string|string/ascii\\-lower|string/ascii\\-upper|string/bytes|string/check\\-set|string/find|string/find\\-all|string/format|string/from\\-bytes|string/has\\-prefix\\?|string/has\\-suffix\\?|string/join|string/repeat|string/replace|string/replace\\-all|string/reverse|string/slice|string/split|string/trim|string/triml|string/trimr|string\\?|struct|struct/getproto|struct/proto\\-flatten|struct/to\\-table|struct/with\\-proto|struct\\?|sum|symbol|symbol/slice|symbol\\?|table|table/clear|table/clone|table/getproto|table/new|table/proto\\-flatten|table/rawget|table/setproto|table/to\\-struct|table/weak|table/weak\\-keys|table/weak\\-values|table\\?|take|take\\-until|take\\-while|tarray/buffer|tarray/copy\\-bytes|tarray/length|tarray/new|tarray/properties|tarray/slice|tarray/swap\\-bytes|thread/close|thread/current|thread/exit|thread/new|thread/receive|thread/send|thaw|trace|true\\?|truthy\\?|tuple|tuple/brackets|tuple/setmap|tuple/slice|tuple/sourcemap|tuple/type|tuple\\?|type|unmarshal|untrace|update|update\\-in|values|varglobal|walk|warn\\-compile|xprin|xprinf|xprint|xprintf|yield|zero\\?|zipcoll)$")) -;; other calls -(par_tup_lit - . - (sym_lit) @function) ["{" "@{" "}" "[" "@[" "]" diff --git a/runtime/queries/janet/indents.scm b/runtime/queries/janet/indents.scm new file mode 100644 index 000000000..b37c9bb7a --- /dev/null +++ b/runtime/queries/janet/indents.scm @@ -0,0 +1,28 @@ +; aligns forms to the second position if there's two in a line: +; (-> 10 +; (* 2) +; (print)) +(par_tup_lit . (sym_lit) @first . (_) @anchor + (#set! "scope" "tail") + (#same-line? @first @anchor) + ; anything that doesn't match should be indented normally + ; from https://github.com/janet-lang/spork/blob/5601dc883535473bca28351cc6df04ed6c656c65/spork/fmt.janet#L87C12-L93C38 + (#not-match? @first "^(fn|match|with|with-dyns|def|def-|var|var-|defn|defn-|varfn|defmacro|defmacro-|defer|edefer|loop|seq|tabseq|catseq|generate|coro|for|each|eachp|eachk|case|cond|do|defglobal|varglobal|if|when|when-let|when-with|while|with-syms|with-vars|if-let|if-not|if-with|let|short-fn|try|unless|default|forever|upscope|repeat|forv|compwhen|compif|ev/spawn|ev/do-thread|ev/spawn-thread|ev/with-deadline|label|prompt|forever)$")) @align + +; everything else should be indented normally: +; +; (let [foo 10] +; (print foo)) +; +; (foo +; bar) +(par_tup_lit . (sym_lit)) @indent + +; for `{}` and `[]`: +; {:foo 10 +; :bar 20} +(struct_lit . (_) @anchor) @align + +; [foo +; bar] +(sqr_tup_lit . (_) @anchor) @align diff --git a/runtime/queries/janet/injections.scm b/runtime/queries/janet/injections.scm new file mode 100644 index 000000000..321c90add --- /dev/null +++ b/runtime/queries/janet/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/runtime/queries/just/highlights.scm b/runtime/queries/just/highlights.scm index 17fcef437..1f57859af 100644 --- a/runtime/queries/just/highlights.scm +++ b/runtime/queries/just/highlights.scm @@ -61,6 +61,9 @@ (mod name: (identifier) @namespace) +(module_path + name: (identifier) @namespace) + ; Paths (mod diff --git a/runtime/queries/just/locals.scm b/runtime/queries/just/locals.scm index f7498b749..71e0218de 100644 --- a/runtime/queries/just/locals.scm +++ b/runtime/queries/just/locals.scm @@ -30,6 +30,9 @@ (function_call name: (identifier) @local.reference) +(module_path + name: (identifier) @local.reference) + (recipe_dependency name: (identifier) @local.reference) diff --git a/runtime/themes/gruvbox-material.toml b/runtime/themes/gruvbox-material.toml index 6f4c861e3..c8448cf9e 100644 --- a/runtime/themes/gruvbox-material.toml +++ b/runtime/themes/gruvbox-material.toml @@ -3,126 +3,4 @@ # Ported by: @satoqz # License: MIT -"attribute" = "green" -"comment" = { fg = "grey1", modifiers = ["italic"] } -"constant" = "fg0" -"constant.builtin" = "purple" -"constant.character.escape" = "green" -"constant.numeric" = "purple" -"constructor" = "green" -"function" = "green" -"keyword" = "red" -"keyword.directive" = "purple" -"keyword.operator" = "orange" -"label" = "red" -"namespace" = "yellow" -"operator" = "orange" -"punctuation" = "grey1" -"punctuation.bracket" = "fg0" -"punctuation.delimiter" = "grey1" -"punctuation.special" = "blue" -"special" = "green" -"string" = "aqua" -"string.regexp" = "green" -"string.special.path" = "yellow" -"string.special.symbol" = "fg0" -"string.special.url" = { fg = "fg0", modifiers = ["underlined"] } -"tag" = "orange" -"type" = "yellow" -"type.enum.variant" = "purple" -"variable" = "fg0" -"variable.builtin" = "purple" -"variable.other.member" = "blue" -"variable.parameter" = "fg0" - -"markup.heading.1" = "red" -"markup.heading.2" = "orange" -"markup.heading.3" = "yellow" -"markup.heading.4" = "green" -"markup.heading.5" = "blue" -"markup.heading.6" = "purple" - -"markup.bold" = { fg = "fg0", modifiers = ["bold"] } -"markup.italic" = { fg = "fg0", modifiers = ["italic"] } -"markup.strikethrough" = { fg = "fg0", modifiers = ["crossed_out"] } - -"markup.link.label" = "blue" -"markup.link.text" = "yellow" -"markup.link.url" = { fg = "blue", modifiers = ["underlined"] } -"markup.list" = "blue" -"markup.list.checked" = "green" -"markup.list.unchecked" = "grey1" -"markup.quote" = "grey1" -"markup.raw" = "green" - -"diff.delta" = "blue" -"diff.minus" = "red" -"diff.plus" = "green" - -"diagnostic.error" = { underline = { color = "red", style = "curl" } } -"diagnostic.hint" = { underline = { color = "green", style = "curl" } } -"diagnostic.info" = { underline = { color = "blue", style = "curl" } } -"diagnostic.unnecessary" = { modifiers = ["dim"] } -"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } } - -error = "red" -hint = "green" -info = "blue" -warning = "yellow" - -"ui.background" = { fg = "fg0", bg = "bg0" } -"ui.bufferline" = { fg = "fg1", bg = "bg4" } -"ui.bufferline.active" = { fg = "bg0", bg = "grey2" } -"ui.bufferline.background" = { bg = "bg1" } -"ui.cursor" = { fg = "bg0", bg = "grey1" } -"ui.cursor.primary" = { fg = "bg0", bg = "fg0" } -"ui.cursor.match" = { bg = "bg2" } -"ui.cursorline.primary" = { bg = "bg1" } -"ui.help" = { fg = "grey1", bg = "bg0" } -"ui.highlight" = { bg = "bg2" } -"ui.linenr" = "bg3" -"ui.linenr.selected" = "grey1" -"ui.menu" = { fg = "fg1", bg = "bg2" } -"ui.menu.scroll" = { fg = "grey0", bg = "bg1" } -"ui.menu.selected" = { fg = "bg2", bg = "grey2" } -"ui.popup" = { fg = "fg1", bg = "bg2" } -"ui.popup.info" = { "fg" = "grey1", bg = "bg0" } -"ui.selection" = { bg = "bg2" } -"ui.statusline" = { fg = "fg1", bg = "bg1" } -"ui.statusline.inactive" = { fg = "grey1", bg = "bg1" } -"ui.statusline.insert" = { fg = "bg0", bg = "green" } -"ui.statusline.normal" = { fg = "bg0", bg = "grey2" } -"ui.statusline.select" = { fg = "bg0", bg = "red" } -"ui.text" = "fg0" -"ui.text.directory" = { fg = "blue" } -"ui.text.focus" = { bg = "bg2" } -"ui.text.inactive" = { fg = "grey1" } -"ui.text.info" = "grey1" -"ui.virtual" = "grey0" -"ui.virtual.indent-guide" = "bg3" -"ui.virtual.inlay-hint" = "grey0" -"ui.virtual.jump-label" = "grey2" -"ui.virtual.ruler" = { bg = "bg1" } -"ui.window" = { fg = "bg3" } - -[palette] -fg0 = "#d4be98" -fg1 = "#ddc7a1" - -bg0 = "#282828" -bg1 = "#32302f" -bg2 = "#45403d" -bg3 = "#5a524c" -bg4 = "#504945" - -grey0 = "#7c6f64" -grey1 = "#928374" -grey2 = "#a89984" - -aqua = "#89b482" -blue = "#7daea3" -green = "#a9b665" -orange = "#e78a4e" -purple = "#d3869b" -red = "#ea6962" -yellow = "#d8a657" +inherits = "gruvbox_material_dark_medium" diff --git a/runtime/themes/gruvbox_material_dark_hard.toml b/runtime/themes/gruvbox_material_dark_hard.toml new file mode 100644 index 000000000..d57c54388 --- /dev/null +++ b/runtime/themes/gruvbox_material_dark_hard.toml @@ -0,0 +1,13 @@ +# Gruvbox Material Dark Hard for Helix +# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material) +# Base theme ported by: @satoqz +# Palette ported by: @ivan-shymkiv +# License: MIT + +inherits = "gruvbox_material_dark_medium" + +[palette] +bg0 = "#1d2021" +bg1 = "#282828" +bg2 = "#3c3836" +bg3 = "#504945" diff --git a/runtime/themes/gruvbox_material_dark_medium.toml b/runtime/themes/gruvbox_material_dark_medium.toml new file mode 100644 index 000000000..9752748ce --- /dev/null +++ b/runtime/themes/gruvbox_material_dark_medium.toml @@ -0,0 +1,128 @@ +# Gruvbox Material Dark Medium for Helix +# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material) +# Ported by: @satoqz +# License: MIT + +"attribute" = "green" +"comment" = { fg = "grey1", modifiers = ["italic"] } +"constant" = "fg0" +"constant.builtin" = "purple" +"constant.character.escape" = "green" +"constant.numeric" = "purple" +"constructor" = "green" +"function" = "green" +"keyword" = "red" +"keyword.directive" = "purple" +"keyword.operator" = "orange" +"label" = "red" +"namespace" = "yellow" +"operator" = "orange" +"punctuation" = "grey1" +"punctuation.bracket" = "fg0" +"punctuation.delimiter" = "grey1" +"punctuation.special" = "blue" +"special" = "green" +"string" = "aqua" +"string.regexp" = "green" +"string.special.path" = "yellow" +"string.special.symbol" = "fg0" +"string.special.url" = { fg = "fg0", modifiers = ["underlined"] } +"tag" = "orange" +"type" = "yellow" +"type.enum.variant" = "purple" +"variable" = "fg0" +"variable.builtin" = "purple" +"variable.other.member" = "blue" +"variable.parameter" = "fg0" + +"markup.heading.1" = "red" +"markup.heading.2" = "orange" +"markup.heading.3" = "yellow" +"markup.heading.4" = "green" +"markup.heading.5" = "blue" +"markup.heading.6" = "purple" + +"markup.bold" = { fg = "fg0", modifiers = ["bold"] } +"markup.italic" = { fg = "fg0", modifiers = ["italic"] } +"markup.strikethrough" = { fg = "fg0", modifiers = ["crossed_out"] } + +"markup.link.label" = "blue" +"markup.link.text" = "yellow" +"markup.link.url" = { fg = "blue", modifiers = ["underlined"] } +"markup.list" = "blue" +"markup.list.checked" = "green" +"markup.list.unchecked" = "grey1" +"markup.quote" = "grey1" +"markup.raw" = "green" + +"diff.delta" = "blue" +"diff.minus" = "red" +"diff.plus" = "green" + +"diagnostic.error" = { underline = { color = "red", style = "curl" } } +"diagnostic.hint" = { underline = { color = "green", style = "curl" } } +"diagnostic.info" = { underline = { color = "blue", style = "curl" } } +"diagnostic.unnecessary" = { modifiers = ["dim"] } +"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } } + +error = "red" +hint = "green" +info = "blue" +warning = "yellow" + +"ui.background" = { fg = "fg0", bg = "bg0" } +"ui.bufferline" = { fg = "fg1", bg = "bg4" } +"ui.bufferline.active" = { fg = "bg0", bg = "grey2" } +"ui.bufferline.background" = { bg = "bg1" } +"ui.cursor" = { fg = "bg0", bg = "grey1" } +"ui.cursor.primary" = { fg = "bg0", bg = "fg0" } +"ui.cursor.match" = { bg = "bg2" } +"ui.cursorline.primary" = { bg = "bg1" } +"ui.help" = { fg = "grey1", bg = "bg0" } +"ui.highlight" = { bg = "bg2" } +"ui.linenr" = "bg3" +"ui.linenr.selected" = "grey1" +"ui.menu" = { fg = "fg1", bg = "bg2" } +"ui.menu.scroll" = { fg = "grey0", bg = "bg1" } +"ui.menu.selected" = { fg = "bg2", bg = "grey2" } +"ui.popup" = { fg = "fg1", bg = "bg2" } +"ui.popup.info" = { "fg" = "grey1", bg = "bg0" } +"ui.selection" = { bg = "bg2" } +"ui.statusline" = { fg = "fg1", bg = "bg1" } +"ui.statusline.inactive" = { fg = "grey1", bg = "bg1" } +"ui.statusline.insert" = { fg = "bg0", bg = "green" } +"ui.statusline.normal" = { fg = "bg0", bg = "grey2" } +"ui.statusline.select" = { fg = "bg0", bg = "red" } +"ui.text" = "fg0" +"ui.text.directory" = { fg = "blue" } +"ui.text.focus" = { bg = "bg2" } +"ui.text.inactive" = { fg = "grey1" } +"ui.text.info" = "grey1" +"ui.virtual" = "grey0" +"ui.virtual.indent-guide" = "bg3" +"ui.virtual.inlay-hint" = "grey0" +"ui.virtual.jump-label" = "grey2" +"ui.virtual.ruler" = { bg = "bg1" } +"ui.window" = { fg = "bg3" } + +[palette] +fg0 = "#d4be98" +fg1 = "#ddc7a1" + +bg0 = "#282828" +bg1 = "#32302f" +bg2 = "#45403d" +bg3 = "#5a524c" +bg4 = "#504945" + +grey0 = "#7c6f64" +grey1 = "#928374" +grey2 = "#a89984" + +aqua = "#89b482" +blue = "#7daea3" +green = "#a9b665" +orange = "#e78a4e" +purple = "#d3869b" +red = "#ea6962" +yellow = "#d8a657" diff --git a/runtime/themes/gruvbox_material_dark_soft.toml b/runtime/themes/gruvbox_material_dark_soft.toml new file mode 100644 index 000000000..bb49ab21b --- /dev/null +++ b/runtime/themes/gruvbox_material_dark_soft.toml @@ -0,0 +1,14 @@ +# Gruvbox Material Dark Soft for Helix +# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material) +# Base theme ported by: @satoqz +# Palette ported by: @ivan-shymkiv +# License: MIT + +inherits = "gruvbox_material_dark_medium" + +[palette] +bg0 = "#32302f" +bg1 = "#3c3836" +bg2 = "#504945" +bg3 = "#665c54" +bg4 = "#5b534d" diff --git a/runtime/themes/gruvbox_material_light_hard.toml b/runtime/themes/gruvbox_material_light_hard.toml new file mode 100644 index 000000000..0c4e3befc --- /dev/null +++ b/runtime/themes/gruvbox_material_light_hard.toml @@ -0,0 +1,14 @@ +# Gruvbox Material Light Hard for Helix +# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material) +# Base theme ported by: @satoqz +# Palette ported by: @ivan-shymkiv +# License: MIT + +inherits = "gruvbox_material_light_medium" + +[palette] +bg0 = "#f9f5d7" +bg1 = "#f5edca" +bg2 = "#f2e5bc" +bg3 = "#ebdbb2" +bg4 = "#eee0b7" diff --git a/runtime/themes/gruvbox_material_light_medium.toml b/runtime/themes/gruvbox_material_light_medium.toml new file mode 100644 index 000000000..e2fb02ab1 --- /dev/null +++ b/runtime/themes/gruvbox_material_light_medium.toml @@ -0,0 +1,129 @@ +# Gruvbox Material Light Medium for Helix +# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material) +# Base theme ported by: @satoqz +# Palette ported by: @ivan-shymkiv +# License: MIT + +"attribute" = "green" +"comment" = { fg = "grey1", modifiers = ["italic"] } +"constant" = "fg0" +"constant.builtin" = "purple" +"constant.character.escape" = "green" +"constant.numeric" = "purple" +"constructor" = "green" +"function" = "green" +"keyword" = "red" +"keyword.directive" = "purple" +"keyword.operator" = "orange" +"label" = "red" +"namespace" = "yellow" +"operator" = "orange" +"punctuation" = "grey1" +"punctuation.bracket" = "fg0" +"punctuation.delimiter" = "grey1" +"punctuation.special" = "blue" +"special" = "green" +"string" = "aqua" +"string.regexp" = "green" +"string.special.path" = "yellow" +"string.special.symbol" = "fg0" +"string.special.url" = { fg = "fg0", modifiers = ["underlined"] } +"tag" = "orange" +"type" = "yellow" +"type.enum.variant" = "purple" +"variable" = "fg0" +"variable.builtin" = "purple" +"variable.other.member" = "blue" +"variable.parameter" = "fg0" + +"markup.heading.1" = "red" +"markup.heading.2" = "orange" +"markup.heading.3" = "yellow" +"markup.heading.4" = "green" +"markup.heading.5" = "blue" +"markup.heading.6" = "purple" + +"markup.bold" = { fg = "fg0", modifiers = ["bold"] } +"markup.italic" = { fg = "fg0", modifiers = ["italic"] } +"markup.strikethrough" = { fg = "fg0", modifiers = ["crossed_out"] } + +"markup.link.label" = "blue" +"markup.link.text" = "yellow" +"markup.link.url" = { fg = "blue", modifiers = ["underlined"] } +"markup.list" = "blue" +"markup.list.checked" = "green" +"markup.list.unchecked" = "grey1" +"markup.quote" = "grey1" +"markup.raw" = "green" + +"diff.delta" = "blue" +"diff.minus" = "red" +"diff.plus" = "green" + +"diagnostic.error" = { underline = { color = "red", style = "curl" } } +"diagnostic.hint" = { underline = { color = "green", style = "curl" } } +"diagnostic.info" = { underline = { color = "blue", style = "curl" } } +"diagnostic.unnecessary" = { modifiers = ["dim"] } +"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } } + +error = "red" +hint = "green" +info = "blue" +warning = "yellow" + +"ui.background" = { fg = "fg0", bg = "bg0" } +"ui.bufferline" = { fg = "fg1", bg = "bg4" } +"ui.bufferline.active" = { fg = "bg0", bg = "grey2" } +"ui.bufferline.background" = { bg = "bg1" } +"ui.cursor" = { fg = "bg0", bg = "grey1" } +"ui.cursor.primary" = { fg = "bg0", bg = "fg0" } +"ui.cursor.match" = { bg = "bg2" } +"ui.cursorline.primary" = { bg = "bg1" } +"ui.help" = { fg = "grey1", bg = "bg0" } +"ui.highlight" = { bg = "bg2" } +"ui.linenr" = "bg3" +"ui.linenr.selected" = "grey1" +"ui.menu" = { fg = "fg1", bg = "bg2" } +"ui.menu.scroll" = { fg = "grey0", bg = "bg1" } +"ui.menu.selected" = { fg = "bg2", bg = "grey2" } +"ui.popup" = { fg = "fg1", bg = "bg2" } +"ui.popup.info" = { "fg" = "grey1", bg = "bg0" } +"ui.selection" = { bg = "bg2" } +"ui.statusline" = { fg = "fg1", bg = "bg1" } +"ui.statusline.inactive" = { fg = "grey1", bg = "bg1" } +"ui.statusline.insert" = { fg = "bg0", bg = "green" } +"ui.statusline.normal" = { fg = "bg0", bg = "grey2" } +"ui.statusline.select" = { fg = "bg0", bg = "red" } +"ui.text" = "fg0" +"ui.text.directory" = { fg = "blue" } +"ui.text.focus" = { bg = "bg2" } +"ui.text.inactive" = { fg = "grey1" } +"ui.text.info" = "grey1" +"ui.virtual" = "grey0" +"ui.virtual.indent-guide" = "bg3" +"ui.virtual.inlay-hint" = "grey0" +"ui.virtual.jump-label" = "grey2" +"ui.virtual.ruler" = { bg = "bg1" } +"ui.window" = { fg = "bg3" } + +[palette] +fg0 = "#654735" +fg1 = "#4f3829" + +bg0 = "#fbf1c7" +bg1 = "#f4e8be" +bg2 = "#eee0b7" +bg3 = "#ddccab" +bg4 = "#e5d5ad" + +grey0 = "#a89984" +grey1 = "#928374" +grey2 = "#7c6f64" + +aqua = "#4c7a5d" +blue = "#45707a" +green = "#6c782e" +orange = "#c35e0a" +purple = "#945e80" +red = "#c14a4a" +yellow = "#b47109" diff --git a/runtime/themes/gruvbox_material_light_soft.toml b/runtime/themes/gruvbox_material_light_soft.toml new file mode 100644 index 000000000..ac74f2432 --- /dev/null +++ b/runtime/themes/gruvbox_material_light_soft.toml @@ -0,0 +1,14 @@ +# Gruvbox Material Light Soft for Helix +# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material) +# Base theme ported by: @satoqz +# Palette ported by: @ivan-shymkiv +# License: MIT + +inherits = "gruvbox_material_light_medium" + +[palette] +bg0 = "#f2e5bc" +bg1 = "#eddeb5" +bg2 = "#e6d5ae" +bg3 = "#d5c4a1" +bg4 = "#dac9a5"