diff options
| author | 2025-12-03 14:04:47 +0300 | |
|---|---|---|
| committer | 2025-12-03 14:04:47 +0300 | |
| commit | 7f94d67cce04305bf374ffc4d608a0584f266bae (patch) | |
| tree | 52e90e58342951282e5063c59f0597d9f2e75dff /config | |
| parent | Небольшие апдейты (diff) | |
| download | dotfiles-7f94d67cce04305bf374ffc4d608a0584f266bae.tar.gz dotfiles-7f94d67cce04305bf374ffc4d608a0584f266bae.tar.bz2 dotfiles-7f94d67cce04305bf374ffc4d608a0584f266bae.tar.xz dotfiles-7f94d67cce04305bf374ffc4d608a0584f266bae.zip | |
03.12.25
Diffstat (limited to '')
32 files changed, 1311 insertions, 221 deletions
diff --git a/config/nvim/after/queries/bash/highlights.scm b/config/nvim/after/queries/bash/highlights.scm new file mode 100644 index 0000000..027baed --- /dev/null +++ b/config/nvim/after/queries/bash/highlights.scm @@ -0,0 +1,8 @@ +;; vim: ft=query +;; extends + +(function_definition + name: (word) @AlabasterDefinition) + +((program . (comment) @AlabasterHashbang) + (#match? @AlabasterHashbang "^#!/")) diff --git a/config/nvim/after/queries/c/highlights.scm b/config/nvim/after/queries/c/highlights.scm new file mode 100644 index 0000000..ddf4ab4 --- /dev/null +++ b/config/nvim/after/queries/c/highlights.scm @@ -0,0 +1,34 @@ +;; vim: ft=query +;; extends + +(function_declarator + declarator: (identifier) @AlabasterDefinition) +(preproc_function_def + name: (identifier) @AlabasterDefinition) + +(type_definition + type: (struct_specifier + name: (type_identifier) @AlabasterDefinition) + declarator: (type_identifier) @AlabasterDefinition) + +(type_definition + type: (struct_specifier) + declarator: (type_identifier) @AlabasterDefinition) + +(type_definition + type: (enum_specifier) + declarator: (type_identifier) @AlabasterDefinition) + +(struct_specifier + name: (type_identifier) @AlabasterDefinition) + +(declaration + type: (struct_specifier + name: (type_identifier) @AlabasterBase)) + +(enum_specifier + name: (type_identifier) @AlabasterDefinition) + +(declaration + type: (enum_specifier + name: (type_identifier) @AlabasterBase)) diff --git a/config/nvim/after/queries/c_sharp/highlights.scm b/config/nvim/after/queries/c_sharp/highlights.scm new file mode 100644 index 0000000..7658863 --- /dev/null +++ b/config/nvim/after/queries/c_sharp/highlights.scm @@ -0,0 +1,15 @@ +;; vim: ft=query +;; extends + +(type_declaration + name: (identifier) @AlabasterDefinition) +(constructor_declaration + name: (identifier) @AlabasterDefinition) +(destructor_declaration + name: (identifier) @AlabasterDefinition) +(method_declaration + name: (identifier) @AlabasterDefinition) +(property_declaration + name: (identifier) @AlabasterDefinition) +(namespace_declaration + name: (identifier) @AlabasterDefinition) diff --git a/config/nvim/after/queries/clojure/highlights.scm b/config/nvim/after/queries/clojure/highlights.scm new file mode 100644 index 0000000..3b586cd --- /dev/null +++ b/config/nvim/after/queries/clojure/highlights.scm @@ -0,0 +1,32 @@ +;; extends +(list_lit + value: (sym_lit) @_keyword.function + (#any-of? @_keyword.function "fn" "fn*" "defn" "defn-") + value: (sym_lit)? @AlabasterDefinition + value: (vec_lit) + (str_lit)? @comment) + +(list_lit + value: (sym_lit) @_keyword.function + (#any-of? @_keyword.function "fn" "fn*" "defn" "defn-") + value: (sym_lit)? @AlabasterDefinition + value: (list_lit)) + +(list_lit + value: (sym_lit) @_keyword.function + (#eq? @_keyword.function "defmacro") + value: (sym_lit)? @AlabasterDefinition + value: (vec_lit) + (str_lit)? @comment) + +(list_lit + value: (sym_lit) @_include + (#eq? @_include "ns") + value: (sym_lit) @AlabasterDefinition) + +(list_lit + value: (kwd_lit) @AlabasterConstant) +(vec_lit + value: (kwd_lit) @AlabasterConstant) +(map_lit + value: (kwd_lit) @AlabasterConstant) diff --git a/config/nvim/after/queries/commonlisp/highlights.scm b/config/nvim/after/queries/commonlisp/highlights.scm new file mode 100644 index 0000000..0e83a9c --- /dev/null +++ b/config/nvim/after/queries/commonlisp/highlights.scm @@ -0,0 +1,6 @@ +;; vim: ft=query +;; extends + +(defun + (defun_header + function_name: (sym_lit) @AlabasterDefinition)) diff --git a/config/nvim/after/queries/cpp/highlights.scm b/config/nvim/after/queries/cpp/highlights.scm new file mode 100644 index 0000000..db787e9 --- /dev/null +++ b/config/nvim/after/queries/cpp/highlights.scm @@ -0,0 +1,81 @@ +;; vim: ft=query +;; extends + +(function_declarator + declarator: (qualified_identifier + name: (identifier) @AlabasterDefinition)) + +;; TODO there's probably a lot of duplicates here + +(function_definition + declarator: (function_declarator + declarator: (destructor_name (identifier) @AlabasterDefinition))) + +(function_definition + declarator: (function_declarator + declarator: (field_identifier) @AlabasterDefinition)) + +(function_definition + declarator: (function_declarator + declarator: (qualified_identifier + name: (destructor_name + (identifier) @AlabasterDefinition)))) + +(declaration + declarator: (function_declarator + declarator: + (destructor_name (identifier) @AlabasterDefinition))) + +(field_declaration + declarator: (function_declarator + declarator: (field_identifier) @AlabasterDefinition)) + +(field_declaration + declarator: (pointer_declarator + declarator: (function_declarator + declarator: + (field_identifier) @AlabasterDefinition))) + +(function_declarator + declarator: (field_identifier) @AlabasterDefinition) + +(function_declarator + declarator: (qualified_identifier + name: (identifier) @AlabasterDefinition)) +(function_declarator + declarator: (qualified_identifier + name: (qualified_identifier + name: (identifier) @AlabasterDefinition))) +((function_declarator + declarator: (qualified_identifier + name: (identifier) @AlabasterDefinition)) + (#lua-match? @AlabasterDefinition "^[A-Z]")) + +(labeled_statement + label: (statement_identifier) @AlabasterDefinition) + +(type_definition + declarator: (type_identifier) @AlabasterDefinition) + +(preproc_def + name: (identifier) @AlabasterDefinition) + +(class_specifier + name: (type_identifier) @AlabasterDefinition) + +(struct_specifier + name: (type_identifier) @AlabasterDefinition) + +(struct_specifier + name: (type_identifier) @AlabasterDefinition) + +(declaration + type: (struct_specifier + name: (type_identifier) @AlabasterBase)) + +(enum_specifier + name: (type_identifier) @AlabasterDefinition) + +(declaration + type: (enum_specifier + name: (type_identifier) @AlabasterBase)) diff --git a/config/nvim/after/queries/fennel/highlights.scm b/config/nvim/after/queries/fennel/highlights.scm new file mode 100644 index 0000000..c172336 --- /dev/null +++ b/config/nvim/after/queries/fennel/highlights.scm @@ -0,0 +1,23 @@ +;; vim: ft=query +;; extends + +; (fn +; name: (symbol) @AlabasterDefinition) +; ; TODO: add this when https://github.com/nvim-treesitter/nvim-treesitter/issues/1788 is fixed +; ; docstring: (string)? @AlabasterComment +; (fn +; name: (multi_symbol (symbol) @AlabasterDefinition)) + +; (global +; (binding +; (symbol) @AlabasterDefinition)) + +(list + (symbol) @function.macro + (#match? @function.macro "^macro$") + (symbol) @AlabasterDefinition) + + +; ((program . (hashfn) @AlabasterHashbang) +; (#match? @AlabasterHashbang "^#!/") +; (#set! "priority" 101)) diff --git a/config/nvim/after/queries/fish/highlights.scm b/config/nvim/after/queries/fish/highlights.scm new file mode 100644 index 0000000..d23c3b7 --- /dev/null +++ b/config/nvim/after/queries/fish/highlights.scm @@ -0,0 +1,16 @@ +;; vim: ft=query +;; extends + +(function_definition + name: (word) @AlabasterDefinition) + +(command + name: (word) @function.builtin + (#match? @function.builtin "^set$") + argument: (word) @parameter + (#any-of? @parameter "-g" "--global" "-U" "--universal" "-x" "--export") + argument: (word) @AlabasterDefinition + argument: (_)) + +((program . (comment) @AlabasterHashbang) + (#match? @AlabasterHashbang "^#!/")) diff --git a/config/nvim/after/queries/go/highlights.scm b/config/nvim/after/queries/go/highlights.scm new file mode 100644 index 0000000..d85f8bb --- /dev/null +++ b/config/nvim/after/queries/go/highlights.scm @@ -0,0 +1,15 @@ +;; vim: ft=query +;; extends + +(package_clause + (package_identifier) @AlabasterDefinition) + +(const_declaration + (const_spec + name: (identifier) @AlabasterDefinition)) + +(function_declaration + name: (identifier) @AlabasterDefinition) + +(method_declaration + name: (field_identifier) @AlabasterDefinition) diff --git a/config/nvim/after/queries/hare/highlights.scm b/config/nvim/after/queries/hare/highlights.scm new file mode 100644 index 0000000..67514e2 --- /dev/null +++ b/config/nvim/after/queries/hare/highlights.scm @@ -0,0 +1,8 @@ +;; vim: ft=query +;; extends + +(function_declaration + name: (identifier) @AlabasterDefinition) + +(type_declaration + (identifier) @AlabasterDefinition) diff --git a/config/nvim/after/queries/java/highlights.scm b/config/nvim/after/queries/java/highlights.scm new file mode 100644 index 0000000..f246f6e --- /dev/null +++ b/config/nvim/after/queries/java/highlights.scm @@ -0,0 +1,11 @@ +;; vim: ft=query +;; extends + +(class_declaration + name: (identifier) @AlabasterDefinition) +(constructor_declaration + name: (identifier) @AlabasterDefinition) +(method_declaration + name: (identifier) @AlabasterDefinition) +(package_declaration + (scoped_identifier) @AlabasterDefinition) diff --git a/config/nvim/after/queries/javascript/highlights.scm b/config/nvim/after/queries/javascript/highlights.scm new file mode 100644 index 0000000..7f7749c --- /dev/null +++ b/config/nvim/after/queries/javascript/highlights.scm @@ -0,0 +1,7 @@ +;; vim: ft=query +;; extends + +(function_declaration + name: (identifier) @AlabasterDefinition) + +(undefined) @AlabasterConstant diff --git a/config/nvim/after/queries/json/highlights.scm b/config/nvim/after/queries/json/highlights.scm new file mode 100644 index 0000000..3f8ce97 --- /dev/null +++ b/config/nvim/after/queries/json/highlights.scm @@ -0,0 +1,6 @@ +;; vim: ft=query +;; extends + +(object + (pair + key: (string) @AlabasterString)) diff --git a/config/nvim/after/queries/kotlin/highlights.scm b/config/nvim/after/queries/kotlin/highlights.scm new file mode 100644 index 0000000..17d061d --- /dev/null +++ b/config/nvim/after/queries/kotlin/highlights.scm @@ -0,0 +1,24 @@ +;; vim: ft=query +;; extends +(function_declaration + (simple_identifier) @AlabasterDefinition) + +(class_declaration + (type_identifier) @AlabasterDefinition) + +(object_declaration + (type_identifier) @AlabasterDefinition) + +(string_literal) @AlabasterString + +(boolean_literal) @AlabasterConstant +(integer_literal) @AlabasterConstant +(long_literal) @AlabasterConstant +(unsigned_literal) @AlabasterConstant +(real_literal) @AlabasterConstant + +(line_comment) @AlabasterHashbang +(multiline_comment) @Comment + + +(modifiers (annotation (user_type (type_identifier) @AlabasterPunctuation))) diff --git a/config/nvim/after/queries/lua/highlights.scm b/config/nvim/after/queries/lua/highlights.scm new file mode 100644 index 0000000..6f0e42d --- /dev/null +++ b/config/nvim/after/queries/lua/highlights.scm @@ -0,0 +1,27 @@ +;; vim: ft=query +;; extends + +(function_declaration + name: (identifier) @AlabasterDefinition) + +(assignment_statement + (variable_list + name: (dot_index_expression + field: (identifier) @AlabasterDefinition)) + (expression_list + value: (function_definition))) + +(assignment_statement + (variable_list + name: (identifier) @AlabasterDefinition) + (expression_list + value: (function_definition))) + +(function_declaration + name: (dot_index_expression + field: (identifier) @AlabasterDefinition)) + +(table_constructor + (field name: (identifier) @AlabasterString)) + +(hash_bang_line) @AlabasterHashbang diff --git a/config/nvim/after/queries/python/highlights.scm b/config/nvim/after/queries/python/highlights.scm new file mode 100644 index 0000000..0d5ef66 --- /dev/null +++ b/config/nvim/after/queries/python/highlights.scm @@ -0,0 +1,13 @@ +;; vim: ft=query +;; extends + +(function_definition + name: (identifier) @AlabasterDefinition) +(class_definition + name: (identifier) @AlabasterDefinition) + +((module . (comment) @AlabasterHashbang) + (#match? @AlabasterHashbang "^#!/")) + +(decorator + (identifier) @AlabasterBase) diff --git a/config/nvim/after/queries/rust/highlights.scm b/config/nvim/after/queries/rust/highlights.scm new file mode 100644 index 0000000..b250310 --- /dev/null +++ b/config/nvim/after/queries/rust/highlights.scm @@ -0,0 +1,53 @@ +;; vim: ft=query +;; extends + +(struct_item + name: (type_identifier) @AlabasterDefinition) +(enum_item + name: (type_identifier) @AlabasterDefinition) + +(impl_item + type: (type_identifier) @AlabasterDefinition) + +(impl_item + type: (scoped_type_identifier + path: (scoped_identifier) + name: (type_identifier) @AlabasterDefinition)) + +(impl_item + body: (declaration_list + (type_item + name: (type_identifier) @AlabasterDefinition))) +(impl_item + type: (generic_type + type: (type_identifier) @AlabasterDefinition)) + +(trait_item + name: (type_identifier) @AlabasterDefinition) + +(trait_item + body: (declaration_list + (associated_type + name: (type_identifier) @AlabasterDefinition))) + +(trait_item + body: (declaration_list + (function_signature_item + name: (identifier) @AlabasterDefinition))) + +(function_item + name: (identifier) @AlabasterDefinition) + +(macro_definition + name: (identifier) @AlabasterDefinition) + +(for_expression + "in" @AlabasterPunctuation) +(type_arguments + "<" @AlabasterPunctuation) +(type_arguments + ">" @AlabasterPunctuation) +(type_parameters + "<" @AlabasterPunctuation) +(type_parameters + ">" @AlabasterPunctuation) diff --git a/config/nvim/after/queries/scala/highlights.scm b/config/nvim/after/queries/scala/highlights.scm new file mode 100644 index 0000000..764e08b --- /dev/null +++ b/config/nvim/after/queries/scala/highlights.scm @@ -0,0 +1,20 @@ +; vim: ft=query +;; extends + +(package_clause + (package_identifier) @AlabasterDefinition) + +(function_definition + name: (identifier) @AlabasterDefinition) + +(function_declaration + name: (identifier) @AlabasterDefinition) + +(class_definition + name: (identifier) @AlabasterDefinition) + +(object_definition + name: (identifier) @AlabasterDefinition) + +(trait_definition + name: (identifier) @AlabasterDefinition) diff --git a/config/nvim/after/queries/typescript/highlights.scm b/config/nvim/after/queries/typescript/highlights.scm new file mode 100644 index 0000000..b3cfa8d --- /dev/null +++ b/config/nvim/after/queries/typescript/highlights.scm @@ -0,0 +1,20 @@ +;; vim: ft=query +;; extends + +(interface_declaration + name: (type_identifier) @AlabasterDefinition) + +(method_definition + name: (property_identifier) @AlabasterDefinition) + +(function_declaration + name: (identifier) @AlabasterDefinition) + +(variable_declarator + name: (identifier) @AlabasterDefinition + value: (arrow_function)) + +(type_alias_declaration + name: (type_identifier) @AlabasterDefinition) + +(undefined) @AlabasterConstant diff --git a/config/nvim/after/queries/vim/highlights.scm b/config/nvim/after/queries/vim/highlights.scm new file mode 100644 index 0000000..f11905d --- /dev/null +++ b/config/nvim/after/queries/vim/highlights.scm @@ -0,0 +1,12 @@ +;; vim: ft=query +;; extends + +(function_definition + (function_declaration + name: (scoped_identifier + (scope) + (identifier) @AlabasterDefinition))) + +(function_definition + (function_declaration + name: (identifier) @AlabasterDefinition)) diff --git a/config/nvim/after/queries/zig/highlights.scm b/config/nvim/after/queries/zig/highlights.scm new file mode 100644 index 0000000..3b79bef --- /dev/null +++ b/config/nvim/after/queries/zig/highlights.scm @@ -0,0 +1,5 @@ +;; vim: ft=query +;; extends + +(function_declaration + name: (identifier) @AlabasterDefinition) diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json index cabc14f..65e6eab 100644 --- a/config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -1,6 +1,5 @@ { "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, - "alabaster.nvim": { "branch": "main", "commit": "1fc9e29fbbce94f127cc8b21960b7e3c85187960" }, "apidocs.nvim": { "branch": "main", "commit": "6f34023f9a14dda5fa1f06d8ffe53e689324d2d2" }, "auto-save.nvim": { "branch": "main", "commit": "37c82fd548e3f5ffc2d9d020a65dac1044584f44" }, "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, @@ -18,9 +17,9 @@ "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, "mcphub.nvim": { "branch": "main", "commit": "8ff40b5edc649959bb7e89d25ae18e055554859a" }, "multicursor.nvim": { "branch": "1.0", "commit": "a6cf4e7daaf10a6b14bb7838caf779f0de5070cd" }, - "neogit": { "branch": "master", "commit": "411d615291d9e8f49b377410385febd1e9ce1787" }, + "neogit": { "branch": "master", "commit": "a24620e541be8814f2357ae334bde947f7dae5a8" }, "nvim-dap": { "branch": "master", "commit": "5860c7c501eb428d3137ee22c522828d20cca0b3" }, - "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, + "nvim-dap-go": { "branch": "main", "commit": "97924027bbd30b5276d383fb22dcb6bf44da0056" }, "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, "nvim-lspconfig": { "branch": "master", "commit": "07f4e93de92e8d4ea7ab99602e3a8c9ac0fb778a" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, @@ -32,7 +31,6 @@ "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, - "render-markdown.nvim": { "branch": "main", "commit": "6e0e8902dac70fecbdd8ce557d142062a621ec38" }, "smartcolumn.nvim": { "branch": "main", "commit": "b9cdbdf42f7ac5a659204cd5926017c7ff724a19" }, - "telescope.nvim": { "branch": "master", "commit": "f0caedf064aa8c926325d7fe64c141d29b8e7853" } + "telescope.nvim": { "branch": "master", "commit": "e69b434b968a33815e2f02a5c7bd7b8dd4c7d4b2" } } diff --git a/config/nvim/lua/keymaps.lua b/config/nvim/lua/keymaps.lua index 6f06bde..0597937 100644 --- a/config/nvim/lua/keymaps.lua +++ b/config/nvim/lua/keymaps.lua @@ -321,6 +321,13 @@ local keys = { { desc = "Debug preview" }, }, { + "<leader>dt", + function() + require("dap-go").debug_test() + end, + { desc = "Debug test" }, + }, + { "<F9>", function() local widgets = require("dap.ui.widgets") diff --git a/config/nvim/lua/options.lua b/config/nvim/lua/options.lua index d30f768..0cd9c53 100644 --- a/config/nvim/lua/options.lua +++ b/config/nvim/lua/options.lua @@ -66,6 +66,4 @@ vim.filetype.add({ }, }) -vim.g.nightflyCursorColor = true -vim.g.nightflyVirtualTextColor = true -vim.g.nightflyTransparent = false + diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua index b7e89f0..8adc95f 100644 --- a/config/nvim/lua/plugins.lua +++ b/config/nvim/lua/plugins.lua @@ -1,11 +1,4 @@ require("lazy").setup({ - { - "p00f/alabaster.nvim", - config = function() - vim.cmd.colorscheme("alabaster") - vim.o.termguicolors = true - end, - }, { "nvim-lua/plenary.nvim" }, { "ray-x/guihua.lua", @@ -26,7 +19,6 @@ require("lazy").setup({ { "mfussenegger/nvim-dap", }, - require("plugins.multicursor"), require("plugins.apidocs"), require("plugins.resize"), diff --git a/config/nvim/lua/plugins/codecompanion.lua b/config/nvim/lua/plugins/codecompanion.lua index a657d09..d8eec4a 100644 --- a/config/nvim/lua/plugins/codecompanion.lua +++ b/config/nvim/lua/plugins/codecompanion.lua @@ -4,10 +4,6 @@ return { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", { - "MeanderingProgrammer/render-markdown.nvim", - ft = { "markdown", "codecompanion" }, - }, - { "ravitemer/mcphub.nvim", dependencies = { "nvim-lua/plenary.nvim", @@ -43,9 +39,12 @@ return { adapter = "scbt", tools = { opts = { + auto_submit_errors = true, -- Send any errors to the LLM automatically? + auto_submit_success = true, -- Send any successful output to the LLM automatically? default_tools = { "full_stack_dev", "mcp", + "filesystem", }, }, opts = { @@ -78,6 +77,17 @@ return { default = "qwen3-235b-it", choices = { "qwen3-235b-it", + "Qwen3-Coder-30B-A3B-Instruct-FP8", + "qwen2-5-coder-1-5b", + }, + num_ctx = { + default = 120000, + }, + think = { + default = true, + }, + keep_alive = { + default = "5m", }, }, }, diff --git a/config/nvim/lua/plugins/conform.lua b/config/nvim/lua/plugins/conform.lua index 3bd4e44..59e761b 100644 --- a/config/nvim/lua/plugins/conform.lua +++ b/config/nvim/lua/plugins/conform.lua @@ -10,7 +10,6 @@ return { html = { "prettier" }, json = { "prettier" }, yaml = { "prettier" }, - markdown = { "prettier" }, graphql = { "prettier" }, lua = { "stylua" }, python = { "isort", "black" }, diff --git a/config/nvim/lua/plugins/dap_go.lua b/config/nvim/lua/plugins/dap_go.lua index 0864da1..91dcac3 100644 --- a/config/nvim/lua/plugins/dap_go.lua +++ b/config/nvim/lua/plugins/dap_go.lua @@ -1,107 +1,5 @@ -local default_config = { - delve = { - path = "dlv", - initialize_timeout_sec = 20, - port = "${port}", - args = {}, - build_flags = "", - -- Automatically handle the issue on delve Windows versions < 1.24.0 - -- where delve needs to be run in attched mode or it will fail (actually crashes). - detached = vim.fn.has("win32") == 0, - output_mode = "remote", - cwd = nil, - }, - tests = { - verbose = false, - }, -} - -local function setup_go_configuration(dap, configs) - local common_debug_configs = { - { - type = "go", - name = "Debug", - request = "launch", - program = "${workspaceFolder}", - outputMode = "remote", - }, - - } - - if dap.configurations.go == nil then - dap.configurations.go = {} - end - - for _, config in ipairs(common_debug_configs) do - table.insert(dap.configurations.go, config) - end - - if configs == nil or configs.dap_configurations == nil then - return - end - - for _, config in ipairs(configs.dap_configurations) do - if config.type == "go" then - table.insert(dap.configurations.go, config) - end - end -end - return { - "leoluz/nvim-dap-go", + url = "https://gitrepo.ru/NeonXP/nvim-dap-go.git", dependencies = { "mfussenegger/nvim-dap" }, opts = true, - config = function() - local dap, dapui = require("dap"), require("dapui") - - dap.adapters.go = { - type = "server", - port = "${port}", - executable = { - command = "dlv", - args = { "dap", "-l", "127.0.0.1:${port}" }, - }, - } - - setup_go_configuration(dap, default_config) - - dap.defaults.fallback.terminal_win_cmd = "enew | set filetype=dap-terminal" - dap.listeners.before.attach.dapui_config = function() - dapui.open() - end - dap.listeners.before.launch.dapui_config = function() - dapui.open() - end - dap.listeners.before.event_terminated.dapui_config = function() - dapui.close() - end - dap.listeners.before.event_exited.dapui_config = function() - dapui.close() - end - - vim.api.nvim_set_hl(0, "DapBreakpoint", { ctermbg = 0, fg = "#993939", bg = "#31353f" }) - vim.api.nvim_set_hl(0, "DapLogPoint", { ctermbg = 0, fg = "#61afef", bg = "#31353f" }) - vim.api.nvim_set_hl(0, "DapStopped", { ctermbg = 0, fg = "#98c379", bg = "#31353f" }) - - vim.fn.sign_define( - "DapBreakpoint", - { text = "!", texthl = "DapBreakpoint", linehl = "DapBreakpoint", numhl = "DapBreakpoint" } - ) - vim.fn.sign_define( - "DapBreakpointCondition", - { text = "?", texthl = "DapBreakpoint", linehl = "DapBreakpoint", numhl = "DapBreakpoint" } - ) - vim.fn.sign_define( - "DapBreakpointRejected", - { text = "RJ", texthl = "DapBreakpoint", linehl = "DapBreakpoint", numhl = "DapBreakpoint" } - ) - vim.fn.sign_define( - "DapLogPoint", - { text = "i", texthl = "DapLogPoint", linehl = "DapLogPoint", numhl = "DapLogPoint" } - ) - vim.fn.sign_define( - "DapStopped", - { text = "→", texthl = "DapStopped", linehl = "DapStopped", numhl = "DapStopped" } - ) - end, } diff --git a/config/nvim/lua/plugins/dapui.lua b/config/nvim/lua/plugins/dapui.lua index 8530fd1..ad2b6b6 100644 --- a/config/nvim/lua/plugins/dapui.lua +++ b/config/nvim/lua/plugins/dapui.lua @@ -3,6 +3,7 @@ return { dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio", + "nvim-dap-go", }, opts = { icons = { diff --git a/config/nvim/lua/theme/alabaster.lua b/config/nvim/lua/theme/alabaster.lua new file mode 100644 index 0000000..7b7e34d --- /dev/null +++ b/config/nvim/lua/theme/alabaster.lua @@ -0,0 +1,45 @@ +local colors +if vim.o.background == "dark" then + colors = { + color1 = "#162022", + color2 = "#cd974b", + color3 = "#cecece", + color4 = "#9F9F9F", + color5 = "#333333", + color6 = "#cc8bc9", + } +else + colors = { + color1 = "#c9c9c9", + color2 = "#cb9000", + color3 = "#222222", + color4 = "#666666", + color5 = "#aaaaaa", + color6 = "#7a3e9d", + } +end + +return { + replace = { + a = { fg = colors.color1, bg = nil, gui = "bold" }, + b = { fg = colors.color3, bg = nil }, + }, + inactive = { + a = { fg = colors.color4, bg = nil, gui = "bold" }, + b = { fg = colors.color4, bg = nil }, + c = { fg = colors.color4, bg = nil }, + }, + normal = { + a = { fg = colors.color3, bg = nil, gui = "bold" }, + b = { fg = colors.color3, bg = nil }, + c = { fg = colors.color3, bg = nil }, + }, + visual = { + a = { fg = colors.color1, bg = nil, gui = "bold" }, + b = { fg = colors.color3, bg = nil }, + }, + insert = { + a = { fg = colors.color1, bg = nil, gui = "bold" }, + b = { fg = colors.color3, bg = nil }, + }, +} diff --git a/config/nvim/lua/theme/asset/hsv-to-rgb.lua b/config/nvim/lua/theme/asset/hsv-to-rgb.lua deleted file mode 100644 index 5a63f98..0000000 --- a/config/nvim/lua/theme/asset/hsv-to-rgb.lua +++ /dev/null @@ -1,29 +0,0 @@ -local function HsvToRgb(h, s, v) - - s = s / 100.0 - v = v / 100.0 - h = h / 60.0 - - local i = math.floor(h) % 6 - local f = h - math.floor(h) - local p = v * (1.0 - s) - local q = v * (1.0 - f * s) - local t = v * (1.0 - (1.0 - f) * s) - - local r, g, b = 0, 0, 0 - - if i == 0 then r, g, b = v, t, p - elseif i == 1 then r, g, b = q, v, p - elseif i == 2 then r, g, b = p, v, t - elseif i == 3 then r, g, b = p, q, v - elseif i == 4 then r, g, b = t, p, v - else r, g, b = v, p, q - end - - r = math.floor(r * 255 + 0.5) - g = math.floor(g * 255 + 0.5) - b = math.floor(b * 255 + 0.5) - - return string.format("#%02x%02x%02x", r, g, b) -end -return HsvToRgb diff --git a/config/nvim/lua/theme/colors.lua b/config/nvim/lua/theme/colors.lua index 6197328..dd9d491 100644 --- a/config/nvim/lua/theme/colors.lua +++ b/config/nvim/lua/theme/colors.lua @@ -1,68 +1,803 @@ -local HsvToRgb = require("theme.asset.hsv-to-rgb") -local colors = { - - black = {HsvToRgb(0, 0, 0), 0},--0 Black - black_l = {HsvToRgb(0, 0, 10), 0}, - black_ll = {HsvToRgb(0, 0, 20), 0}, - - gray_dd = {HsvToRgb(0, 0, 30), 8},--8 DarkGray - gray_d = {HsvToRgb(0, 0, 40), 8}, - gray = {HsvToRgb(0, 0, 50), 7},--7 Gray - gray_l = {HsvToRgb(0, 0, 60), 7}, - gray_ll = {HsvToRgb(0, 0, 70), 7}, - - white_dd = {HsvToRgb(0, 0, 80), 15},--15 White - white_d = {HsvToRgb(0, 0, 90), 15}, - white = {HsvToRgb(0, 0, 100), 15}, - - red_d = {HsvToRgb(0, 100, 75), 12},--12 Red - red = {HsvToRgb(0, 100, 100), 12}, - red_l = {HsvToRgb(0, 75, 100), 12}, - - orange_d = {HsvToRgb(30, 100, 75), 4},--4 DarkRed - orange = {HsvToRgb(30, 100, 100), 4}, - orange_l = {HsvToRgb(30, 75, 100), 4}, - - yellow_d = {HsvToRgb(60, 100, 75), 14},--14 Yellow - yellow = {HsvToRgb(60, 100, 100), 14}, - yellow_l = {HsvToRgb(60, 75, 100), 14}, - - chartreuse_d = {HsvToRgb(90, 100, 75), 6},--6 DarkYellow - chartreuse = {HsvToRgb(90, 100, 100), 6}, - chartreuse_l = {HsvToRgb(90, 75, 100), 6}, - - green_d = {HsvToRgb(120, 100, 75), 10},--10 Green - green = {HsvToRgb(120, 100, 100), 10}, - green_l = {HsvToRgb(120, 75, 100), 10}, - - turquoise_d = {HsvToRgb(150, 100, 75), 2},--2 DarkGreen - turquoise = {HsvToRgb(150, 100, 100), 2}, - turquoise_l = {HsvToRgb(150, 75, 100), 2}, - - cyan_d = {HsvToRgb(180, 100, 75), 11},--11 Cyan - cyan = {HsvToRgb(180, 100, 100), 11}, - cyan_l = {HsvToRgb(180, 75, 100), 11}, - - royal_d = {HsvToRgb(210, 100, 75), 3},--3 DarkCyan - royal = {HsvToRgb(210, 100, 100), 3}, - royal_l = {HsvToRgb(210, 75, 100), 3}, - - blue_d = {HsvToRgb(240, 100, 75), 9},--9 Blue - blue = {HsvToRgb(240, 100, 100), 9}, - blue_l = {HsvToRgb(240, 75, 100), 9}, - - purple_d = {HsvToRgb(270, 100, 75), 1},--1 DarkBlue - purple = {HsvToRgb(270, 100, 100), 1}, - purple_l = {HsvToRgb(270, 75, 100), 1}, - - pink_d = {HsvToRgb(300, 100, 75), 13},--13 Magenta - pink = {HsvToRgb(300, 100, 100), 13}, - pink_l = {HsvToRgb(300, 75, 100), 13}, - - salmon_d = {HsvToRgb(330, 100, 75), 5},--5 DarkMagenta - salmon = {HsvToRgb(330, 100, 100), 5}, - salmon_l = {HsvToRgb(330, 75, 100), 5}, - - none = {"NONE", "NONE"} -} -return colors +vim.cmd("hi clear") +if vim.fn.exists("syntax_on") == 1 then + vim.cmd("syntax reset") +end + +vim.g.colors_name = "alabaster" + +local theme +---@diagnostic disable: undefined-global +if vim.o.background == "dark" then + -- terminal colors + vim.g.terminal_color_0 = "#000000" + vim.g.terminal_color_1 = "#d2322d" + vim.g.terminal_color_2 = "#6abf40" + vim.g.terminal_color_3 = "#cd974b" + vim.g.terminal_color_4 = "#217EBC" + vim.g.terminal_color_5 = "#9B3596" + vim.g.terminal_color_6 = "#178F79" + vim.g.terminal_color_7 = "#cecece" + vim.g.terminal_color_8 = "#333333" + vim.g.terminal_color_9 = "#c33c33" + vim.g.terminal_color_10 = "#95cb82" + vim.g.terminal_color_11 = "#dfdf8e" + vim.g.terminal_color_12 = "#71aed7" + vim.g.terminal_color_13 = "#cc8bc9" + vim.g.terminal_color_14 = "#47BEA9" + vim.g.terminal_color_15 = "#ffffff" + + -- colors + local fg = "#cecece" + local punct_fg = "#708b8d" + local def_fg = "#71ade7" + local const_fg = "#cc8bc9" + local active = "#cd974b" + local string_fg = "#95cb82" + local darker_fg = "#7d7d7d" + local diffadd = "#6abf40" + local diffdelete = "#d2322d" + local diffchange = "#ec8013" + local statusline = "#162022" + local comment = "#dfdf8e" + local dim_comment = "#696969" + local mistake = { + fg = "#c33c33", + bg = "#2b1d1e", + } + local error = "#d13e23" + local warn = "#f4b371" + local hint = "#8ebeec" + local info = "#88cc66" + local ansi = { + black = "#333333", + blue = "#71aed7", + brightyellow = "#dfdf8e", + cyan = "#47bea9", + green = "#95cb82", + magenta = "#cc8bc9", + red = "#c33c33", + white = "#cecece", + yellow = "#cd974b", + } + local comment_fg = vim.g.alabaster_dim_comments and dim_comment or comment + local pmenu_bg = "#182325" + local float_bg = vim.g.alabaster_floatborder and bg or pmenu_bg + local floatborder = vim.g.alabaster_floatborder and { bg = bg, fg = "#333333" } + or { + bg = float_bg, + fg = float_bg, + } + theme = { + Comment = { fg = comment_fg }, + ColorColumn = { bg = "#182325" }, + Conceal = { fg = "#b0b0b0" }, + Cursor = { bg = active, fg = "#000000" }, + -- lCursor { }, -- the character under the cursor when |language-mapping| is used (see 'guicursor') + -- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM| + CursorColumn = { bg = "#182325" }, + CursorLine = { bg = "#182325" }, + Directory = { fg = ansi.blue }, + DiffAdd = { bg = "#244032", fg = "#56d364" }, + DiffDelete = { bg = "#462c32", fg = "#f85149" }, + DiffText = { fg = "#341a00", bg = "#fff987" }, + DiffChange = { bg = "#341a00", fg = "#e3b341" }, + EndOfBuffer = { fg = "#354c50" }, + -- TermCursor { }, -- cursor in a focused terminal + TermCursorNC = { fg = bg, bg = fg }, + ErrorMsg = { fg = error, bg = mistake.bg }, + VertSplit = { fg = "#2b3d40" }, + Folded = { bg = "#182325", fg = "#7d7d7d" }, + FoldColumn = { bg = bg, fg = "#4d4d4d" }, + SignColumn = {}, + IncSearch = { bg = ansi.yellow, fg = bg }, + -- Substitute { }, -- |:substitute| replacement text highlighting + LineNr = { fg = "#5c5c5c" }, + CursorLineNr = { fg = ansi.blue, bold = 1 }, + MatchParen = { underline = 1, sp = active }, + -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ") + -- MsgArea { }, -- Area for messages and cmdline + -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display' + MoreMsg = { fg = ansi.green, bold = 1 }, + NonText = { fg = "#696969" }, + Normal = { bg = bg, fg = fg }, + NormalFloat = { bg = float_bg }, + -- NormalNC { }, -- normal text in non-current windows + FloatBorder = floatborder, + Pmenu = { bg = pmenu_bg }, + PmenuSel = { bg = "#354c50" }, + PmenuSbar = { bg = "#212f31" }, + PmenuThumb = { bg = "#47666b" }, + Question = { fg = diffadd }, + QuickFixLine = { bg = "#182325" }, + Search = { bg = "#354c50" }, + SpecialKey = { fg = ansi.cyan }, + SpellBad = { undercurl = 1, sp = ansi.red }, + SpellCap = { undercurl = 1, sp = ansi.blue }, + SpellLocal = { undercurl = 1, sp = ansi.cyan }, + SpellRare = { undercurl = 1, sp = ansi.magenta }, + StatusLine = { bg = statusline, fg = fg }, + StatusLineNC = { bg = statusline, fg = "#9f9f9f" }, + TabLine = { bg = statusline, fg = "#7d7d7d" }, + TabLineFill = { bg = statusline }, + TabLineSel = { bg = statusline, fg = ansi.blue }, + Title = { fg = const_fg }, + Visual = { bg = "#293334" }, + VisualNOS = { bg = "#293334" }, + WarningMsg = { fg = "#e1ad4c" }, + WildMenu = { bg = "#354c50" }, + WinBar = { bg = bg, fg = ansi.white, bold = true }, + WinBarNC = { bg = bg, fg = "#7d7d7d" }, + + --- SYNTAX I: TS groups link to these + Constant = { fg = const_fg }, + String = { fg = string_fg }, + Character = { fg = const_fg }, + Number = { fg = const_fg }, + Boolean = { fg = const_fg }, + Float = { fg = const_fg }, + Operator = { fg = punct_fg }, + + --- SYNTAX II: TS groups have their own definition, the below are defined to have somewhat working hl w/o treesitter + Identifier = { fg = def_fg }, -- ansi.white }, + Function = { fg = def_fg }, + Statement = { fg = ansi.white }, + Conditional = { fg = ansi.white }, + Repeat = { fg = ansi.white }, + Label = { fg = def_fg }, + Keyword = { fg = ansi.white }, + Exception = { fg = ansi.white }, + PreProc = { fg = ansi.white }, + Include = { fg = ansi.white }, + Define = { fg = ansi.white }, + Macro = { fg = ansi.white }, + PreCondit = { fg = ansi.white }, + Type = { fg = ansi.white }, + StorageClass = { fg = ansi.white }, + Structure = { fg = def_fg }, + Typedef = { fg = def_fg }, + + Special = { fg = ansi.yellow }, + -- TODO better color than diffchange, try reddish + -- SpecialChar = { fg = diffchange }, -- special character in a constant + -- Tag { }, -- you can use CTRL-] on this + -- Delimiter { }, + SpecialComment = { bg = "#1d292b", fg = ansi.blue }, + debugPc = { bg = "#0f2534" }, + debugBreakpoint = { bg = "#b33229" }, + helpHyperTextJump = { fg = ansi.magenta }, + helpSectionDelim = { fg = ansi.magenta }, + helpExample = { fg = ansi.cyan }, + helpCommand = { fg = ansi.cyan }, + helpHeadline = { fg = ansi.blue }, + helpHeader = { fg = ansi.magenta }, + + Underlined = { underline = 1 }, -- (preferred) text that stands out, HTML links + Italic = { italic = 1 }, + + -- ("Ignore", below, may be invisible...) + -- Ignore { }, -- (preferred) left blank, hidden |hl-Ignore| + + Error = { bg = mistake.bg, fg = mistake.fg }, + + Todo = { bg = "#d0d058", fg = bg }, + + --- Diagnostic + LspReferenceText = { bg = "#253437" }, + LspReferenceRead = { bg = "#253437" }, + LspReferenceWrite = { bg = "#253437", underline = 1, sp = active }, + LspCodeLens = { fg = "#5c5c5c" }, + LspCodeLensSeparator = { fg = "#5c5c5c" }, + + --- Diagnostic + DiagnosticError = { fg = error }, + DiagnosticWarn = { fg = warn }, + DiagnosticHint = { fg = hint }, + DiagnosticInfo = { fg = info }, + DiagnosticVirtualTextError = { bg = "#350B0B", fg = "#D1503A" }, + DiagnosticVirtualTextWarn = { bg = "#3F240A", fg = "#C8935D" }, + DiagnosticVirtualTextHint = { bg = "#1D2B37", fg = "#7E9CB9" }, + DiagnosticVirtualTextInfo = { bg = "#162C0B", fg = "#7BAC62" }, + + --- Treesitter + TSAttribute = {}, + TSConstructor = { fg = ansi.white }, + TSConditional = { fg = ansi.white }, + TSConstBuiltin = { fg = const_fg }, + TSConstMacro = { fg = ansi.white }, + TSError = { bg = mistake.bg, fg = mistake.fg }, + TSException = { fg = ansi.white }, + TSField = { fg = def_fg }, -- ansi.white }, + TSFunction = { fg = ansi.white }, + TSFuncBuiltin = { fg = ansi.white }, + TSFuncMacro = { fg = ansi.white }, + TSKeyword = { fg = ansi.white }, + TSKeywordFunction = { fg = ansi.white }, + TSLabel = { fg = ansi.white }, + TSMethod = { fg = ansi.white }, + TSNamespace = { fg = ansi.white }, + TSNone = { fg = const_fg }, + TSParameter = { fg = ansi.white }, + TSParameterReference = { fg = ansi.white }, + TSProperty = { fg = ansi.white }, + TSPunctDelimiter = { fg = punct_fg }, + TSPunctBracket = { fg = "#bababa" }, + TSPunctSpecial = { fg = punct_fg }, + TSRepeat = { fg = ansi.white }, + TSString = { fg = string_fg }, + TSStringRegex = { bg = "#1d292b", fg = const_fg }, + TSStringEscape = { bg = "#1d292b", fg = const_fg }, + TSSymbol = {}, + TSType = { fg = ansi.white }, + TSTypeBuiltin = { fg = ansi.white }, + TSVariable = { fg = ansi.white }, + TSVariableBuiltin = { fg = ansi.white }, + TSTag = { fg = ansi.white }, + TSTagDelimiter = { fg = punct_fg }, + TSText = { fg = ansi.white }, + ["@attribute"] = {}, + ["@constructor"] = { fg = ansi.white }, + ["@conditional"] = { fg = ansi.white }, + ["@constant.builtin"] = { fg = const_fg }, + ["@constant.macro"] = { fg = ansi.white }, + ["@error"] = { bg = mistake.bg, fg = mistake.fg }, + ["@exception"] = { fg = ansi.white }, + ["@field"] = { fg = ansi.white }, + ["@function"] = { fg = ansi.white }, + ["@function.builtin"] = { fg = ansi.white }, + ["@function.macro"] = { fg = ansi.white }, + ["@keyword"] = { fg = ansi.white }, + ["@keyword.function"] = { fg = ansi.white }, + ["@keyword.operator"] = { fg = punct_fg }, + ["@label"] = { fg = ansi.white }, + ["@method"] = { fg = ansi.white }, + ["@module"] = { fg = ansi.white }, + ["@namespace"] = { fg = ansi.white }, + ["@none"] = { fg = const_fg }, + ["@parameter"] = { fg = ansi.white }, + ["@parameter.reference"] = { fg = ansi.white }, + ["@property"] = { fg = ansi.white }, + ["@punctuation.delimiter"] = { fg = punct_fg }, + ["@punctuation.bracket"] = { fg = "#bababa" }, + ["@punctuation.special"] = { fg = punct_fg }, + ["@repeat"] = { fg = ansi.white }, + ["@string"] = { fg = string_fg }, + ["@string.regex"] = { bg = "#1d292b", fg = const_fg }, + ["@string.escape"] = { bg = "#1d292b", fg = const_fg }, + ["@symbol"] = {}, + ["@type.builtin"] = { fg = ansi.white }, + ["@variable"] = { fg = ansi.white }, + ["@variable.builtin"] = { fg = ansi.white }, + ["@tag"] = { fg = ansi.white }, + ["@tag.delimiter"] = { fg = punct_fg }, + ["@text"] = { fg = ansi.white }, + ["@text.note"] = { bg = "#1d292b", fg = ansi.blue }, + ["@text.warning"] = { bg = "#d0d058", fg = bg }, + + ["@type"] = { fg = def_fg }, + --- + --- Theme specific + ["@AlabasterBase"] = { fg = ansi.white }, + ["@AlabasterConstant"] = { fg = const_fg }, + ["@AlabasterDefinition"] = { fg = def_fg }, + ["@AlabasterPunct"] = { fg = punct_fg }, + ["@AlabasterString"] = { fg = string_fg }, + ["@AlabasterHashbang"] = { fg = dim_comment }, + --- Gitsigns + GitSignsAdd = { fg = diffadd }, + GitSignsChange = { fg = diffchange }, + GitSignsDelete = { fg = diffdelete }, + --- Telescope + TelescopeBorder = { fg = "#2b3d40" }, + TelescopeMatching = { fg = "#f09942" }, + TelescopeMultiSelection = { fg = ansi.magenta }, + TelescopePromptPrefix = { fg = ansi.blue }, + TelescopeSelectionCaret = { fg = mistake.fg }, + TelescopeTitle = { fg = ansi.brightyellow }, + TelescopeResultsTitle = { fg = ansi.yellow }, + --- fzf-lua + FzfLuaBorder = { fg = "#2b3d40" }, + --- mini.nvim + MiniPickMatchCurrent = { fg = "#f09942" }, + --- Neogit + NeogitPopupActionDisabled = { fg = darker_fg }, + NeogitPopupActionKey = { fg = ansi.magenta }, + NeogitPopupOptionDisabled = { fg = darker_fg }, + NeogitPopupOptionKey = { fg = ansi.blue }, + NeogitPopupSwitchDisabled = { fg = darker_fg }, + NeogitPopupSwitchEnabled = { fg = ansi.cyan }, + NeogitPopupSwitchKey = { fg = ansi.magenta }, + --- Fugitive + diffAdded = { link = "DiffAdd" }, + diffRemoved = { link = "DiffDelete" }, + --- Startify + StartifyBracket = { fg = darker_fg }, + StartifyFile = { fg = ansi.white }, + StartifySection = { fg = ansi.green }, + StartifySlash = { fg = "#4e6e75" }, + StartifyPath = { fg = "#4e6e75" }, + --- Statusline + StatuslineAdd = { fg = diffadd, bg = statusline }, + StatuslineErr = { fg = error, bg = statusline }, + StatuslineHint = { fg = hint, bg = statusline }, + StatuslineInfo = { fg = info, bg = statusline }, + StatuslineWarn = { fg = warn, bg = statusline }, + StatuslineBlue = { fg = ansi.blue, bg = statusline }, + StatuslineRed = { fg = ansi.red, bg = statusline }, + StatuslineGreen = { fg = ansi.green, bg = statusline }, + StatuslineCyan = { fg = ansi.cyan, bg = statusline }, + StatuslineMagenta = { fg = ansi.magenta, bg = statusline }, + --- ALE + ALEWarningSign = { fg = warn }, + --- vim-matchup + MatchupVirtualText = { fg = ansi.yellow }, + --- For `highlight link` + AlabasterBlack = { fg = ansi.black }, + AlabasterBlue = { fg = ansi.blue }, + AlabasterBrightYellow = { fg = ansi.brightyellow }, + AlabasterCyan = { fg = ansi.cyan }, + AlabasterGreen = { fg = ansi.green }, + AlabasterDarkGreen = { fg = "#6abf40" }, + AlabasterMagenta = { fg = ansi.magenta }, + AlabasterRed = { fg = ansi.red }, + AlabasterWhite = { fg = ansi.white }, + AlabasterYellow = { fg = ansi.yellow }, + --- Hop + HopNextKey = { fg = ansi.brightyellow }, + HopNextKey1 = { fg = ansi.cyan }, + HopNextKey2 = { fg = "#297567" }, + HopUnmatched = { fg = "#3d3d3d" }, + --- Lightspeed + LightspeedGreyWash = { fg = "#3d3d3d" }, + --- checkhealth + healthSuccess = { fg = ansi.green, bg = bg }, + --- cmp + CmpItemMenuDefault = { fg = ansi.magenta }, + --- nvim-ts-rainbow + rainbowcol1 = { fg = ansi.yellow }, + rainbowcol2 = { fg = ansi.magenta }, + rainbowcol3 = { fg = ansi.blue }, + rainbowcol4 = { fg = ansi.green }, + rainbowcol5 = { fg = ansi.brightyellow }, + rainbowcol6 = { fg = ansi.red }, + rainbowcol7 = { fg = ansi.cyan }, + --- Iswap + ISwapSnipe = { bg = ansi.yellow, fg = bg }, + ISwapGrey = { fg = "#3d3d3d" }, + --- vim-dadbod-ui + dbui_help = { fg = dim_comment }, + dbui_connection_source = { fg = dim_comment }, + --- nvim-dap-virtual-text + NvimDapVirtualText = { bg = "#1d292b", fg = ansi.cyan }, + --- Noice + NoiceCmdlineIcon = { link = "AlabasterDarkGreen" }, + NoiceCmdlinePopupBorder = { link = "AlabasterDarkGreen" }, + NoiceConfirmBorder = { link = "AlabasterDarkGreen" }, + NoiceCmdlinePopupBorderCmdline = { link = "AlabasterDarkGreen" }, + NoiceCmdlineIconCmdline = { link = "AlabasterDarkGreen" }, + NoiceCmdlinePopupBorderFilter = { link = "AlabasterDarkGreen" }, + NoiceCmdlineIconFilter = { link = "AlabasterDarkGreen" }, + NoiceCmdlinePopupBorderLua = { link = "AlabasterDarkGreen" }, + NoiceCmdlineIconLua = { link = "AlabasterDarkGreen" }, + NoiceCmdlinePopupBorderSearch = { link = "AlabasterYellow" }, + NoiceCmdlineIconSearch = { link = "AlabasterYellow" }, + -- Languages + --- asm + asmDirective = { fg = dim_comment }, + nasmLabel = { link = "@AlabasterDefinition" }, + + ["@lsp.mod.declaration"] = { fg = fg }, + ["@lsp.type.enumMember"] = { fg = fg }, + ["@lsp.type.function"] = { fg = fg }, + ["@lsp.type.method"] = { fg = fg }, + ["@lsp.type.selfKeyword"] = { fg = fg }, + ["@lsp.typemod.class.declaration"] = { fg = def_fg }, + ["@lsp.typemod.class.definition"] = { fg = def_fg }, + ["@lsp.typemod.enum.declaration"] = { fg = def_fg }, + ["@lsp.typemod.enumMember.defaultLibrary"] = { fg = fg }, + ["@lsp.typemod.function.declaration"] = { fg = def_fg }, + ["@lsp.typemod.function.definition"] = { fg = def_fg }, + ["@lsp.typemod.macro.declaration"] = { fg = def_fg }, + ["@lsp.typemod.method.declaration"] = { fg = def_fg }, + ["@lsp.typemod.selfKeyword"] = { fg = fg }, + ["@lsp.typemod.struct.declaration"] = { fg = def_fg }, + ["@lsp.typemod.type.declaration"] = { fg = def_fg }, + } +else + -- terminal colors + vim.g.terminal_color_0 = "#000000" + vim.g.terminal_color_1 = "#aa3731" + vim.g.terminal_color_2 = "#448c27" + vim.g.terminal_color_3 = "#cb9000" + vim.g.terminal_color_4 = "#325cc0" + vim.g.terminal_color_5 = "#7a3e9d" + vim.g.terminal_color_6 = "#0083b2" + vim.g.terminal_color_7 = "#f7f7f7" + vim.g.terminal_color_8 = "#777777" + vim.g.terminal_color_9 = "#f05050" + vim.g.terminal_color_10 = "#60cb00" + vim.g.terminal_color_11 = "#ffbc5d" + vim.g.terminal_color_12 = "#007acc" + vim.g.terminal_color_13 = "#e64ce6" + vim.g.terminal_color_14 = "#00aacb" + vim.g.terminal_color_15 = "#f7f7f7" + + -- colors + local bg = "#f7f7f7" + local fg = "#000000" + local punct_fg = "#777777" + local def_fg = "#325cc0" + local const_fg = "#7a3e9d" + local active = "#ffbc5d" + local active_blue = "#007acc" + local string_fg = "#448c27" + local darker_fg = "#7d7d7d" + local diffadd = "#284918" + local diffdelete = "#B40600" + local diffchange = "#ec8013" + local statusline = "#c9c9c9" + local comment = "#aa3731" + local dim_comment = "#696969" + local mistake = { + fg = "#c33c33", + bg = "#f8b28f", + } + local ansi = { + black = "#000000", + blue = "#325cc0", + brightyellow = "#ffbc5d", + cyan = "#0083b2", + green = "#448c27", + magenta = "#7a3e9d", + red = "#aa3731", + white = "#f7f7f7", + yellow = "#cb9000", + } + local error = "#d13e23" + local warn = "#BC7500" + local hint = ansi.blue + local info = "#278C00" + local comment_fg = vim.g.alabaster_dim_comments and dim_comment or comment + local pmenu_bg = "#e7e7e7" + local float_bg = vim.g.alabaster_floatborder and bg or pmenu_bg + local floatborder = vim.g.alabaster_floatborder and { bg = bg, fg = "#999999" } + or { + bg = float_bg, + fg = float_bg, + } + theme = { + Comment = { fg = comment_fg }, + ColorColumn = { bg = "#E2EEEE" }, + Conceal = { fg = "#b0b0b0" }, + Cursor = { bg = "#007acc", fg = "#bfdbfe" }, + -- lCursor { }, -- the character under the cursor when |language-mapping| is used (see 'guicursor') + -- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM| + CursorColumn = { bg = "#E2EEEE" }, + CursorLine = { bg = "#E2EEEE" }, + Directory = { fg = ansi.blue }, + DiffAdd = { bg = "#ADFFB7", fg = "#0A7816" }, + DiffDelete = { bg = "#F8B28F", fg = "#872C28" }, + DiffText = { fg = "#fff987", bg = "#876004" }, + DiffChange = { bg = "#fff987", fg = "#341a00" }, + EndOfBuffer = { fg = "#b6b6b6" }, + -- TermCursor { }, -- cursor in a focused terminal + TermCursorNC = { fg = bg, bg = fg }, + ErrorMsg = { fg = error, bg = mistake.bg }, + VertSplit = { fg = "#abbdc0" }, + Folded = { bg = "#dddddd", fg = "#7d7d7d" }, + FoldColumn = { bg = bg, fg = "#4d4d4d" }, + SignColumn = {}, + IncSearch = { bg = active, fg = fg }, + -- Substitute { }, -- |:substitute| replacement text highlighting + LineNr = { fg = "#7d7c7c" }, + CursorLineNr = { fg = ansi.blue, bold = 1 }, + MatchParen = { underline = 1, sp = active }, + -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ") + -- MsgArea { }, -- Area for messages and cmdline + -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display' + MoreMsg = { fg = ansi.green, bold = 1 }, + NonText = { fg = "#696969" }, + Normal = { bg = bg, fg = fg }, + NormalFloat = { bg = float_bg }, + -- NormalNC { }, -- normal text in non-current windows + FloatBorder = floatborder, + Pmenu = { bg = pmenu_bg }, + PmenuSel = { bg = "#c7c7c7" }, + PmenuSbar = { bg = "#777777" }, + PmenuThumb = { bg = "#333333" }, + Question = { fg = ansi.green }, + QuickFixLine = { bg = "#E2EEEE" }, + Search = { bg = "#fae9b7", fg = fg }, + SpecialKey = { fg = ansi.cyan }, + SpellBad = { undercurl = 1, sp = ansi.red }, + SpellCap = { undercurl = 1, sp = ansi.blue }, + SpellLocal = { undercurl = 1, sp = ansi.cyan }, + SpellRare = { undercurl = 1, sp = ansi.magenta }, + StatusLine = { bg = statusline, fg = fg }, + StatusLineNC = { bg = statusline, fg = "#9f9f9f" }, + TabLine = { bg = statusline, fg = "#7d7d7d" }, + TabLineFill = { bg = statusline }, + TabLineSel = { bg = statusline, fg = ansi.blue }, + Title = { fg = const_fg }, + Visual = { bg = "#bfdbfe" }, + VisualNOS = { bg = "#bfdbfe" }, + WarningMsg = { fg = "#e1ad4c" }, + WildMenu = { bg = "#999999" }, + WinBar = { bg = bg, fg = ansi.black, bold = true }, + WinBarNC = { bg = bg, fg = "#7d7d7d" }, + + --- SYNTAX I: TS groups link to these + Constant = { fg = const_fg }, + String = { fg = string_fg }, + Character = { fg = const_fg }, + Number = { fg = const_fg }, + Boolean = { fg = const_fg }, + Float = { fg = const_fg }, + Operator = { fg = punct_fg }, + + --- SYNTAX II: TS groups have their own definition, the below are defined to have somewhat working hl w/o treesitter + Identifier = { fg = ansi.black }, + Function = { fg = def_fg }, + Statement = { fg = ansi.black }, + Conditional = { fg = ansi.black }, + Repeat = { fg = ansi.black }, + Label = { fg = def_fg }, + Keyword = { fg = ansi.black }, + Exception = { fg = ansi.black }, + PreProc = { fg = ansi.black }, + Include = { fg = ansi.black }, + Define = { fg = ansi.black }, + Macro = { fg = ansi.black }, + PreCondit = { fg = ansi.black }, + Type = { fg = ansi.black }, + StorageClass = { fg = ansi.black }, + Structure = { fg = def_fg }, + Typedef = { fg = def_fg }, + + Special = { fg = ansi.yellow }, + -- TODO better color than diffchange, try reddish + -- SpecialChar = { fg = diffchange }, -- special character in a constant + -- Tag { }, -- you can use CTRL-] on this + -- Delimiter { }, + SpecialComment = { bg = "#FFDEAA", fg = ansi.blue }, + debugPc = { bg = "#C7C7EE" }, + debugBreakpoint = { bg = "#F8B28F" }, + helpHyperTextJump = { fg = ansi.magenta }, + helpSectionDelim = { fg = ansi.magenta }, + helpExample = { fg = ansi.cyan }, + helpCommand = { fg = ansi.cyan }, + helpHeadline = { fg = ansi.blue }, + helpHeader = { fg = ansi.magenta }, + + Underlined = { underline = 1 }, -- (preferred) text that stands out, HTML links + Italic = { italic = 1 }, + + -- ("Ignore", below, may be invisible...) + -- Ignore { }, -- (preferred) left blank, hidden |hl-Ignore| + + Error = { bg = mistake.bg, fg = mistake.fg }, + + Todo = { bg = "#FFDEAA", fg = ansi.blue }, + + --- Diagnostic + LspReferenceText = { bg = "#dadada" }, + LspReferenceRdad = { bg = "#dadada" }, + LspReferenceWrite = { bg = "#dadada", underline = 1, sp = active_blue }, + LspCodeLens = { fg = "#999999" }, + LspCodeLensSeparator = { fg = "#999999" }, + + --- Diagnostic + DiagnosticError = { fg = error }, + DiagnosticWarn = { fg = warn }, + DiagnosticHint = { fg = hint }, + DiagnosticInfo = { fg = info }, + DiagnosticVirtualTextError = { bg = "#F8B28F", fg = "#411414" }, + DiagnosticVirtualTextWarn = { bg = "#fff987", fg = fg }, + DiagnosticVirtualTextHint = { fg = "#0F171D", bg = "#C3D0DA" }, + DiagnosticVirtualTextInfo = { bg = "#ADFFB7", fg = "#042F09" }, + + --- Treesitter + TSAttribute = {}, + TSConstructor = { fg = ansi.black }, + TSConditional = { fg = ansi.black }, + TSConstBuiltin = { fg = const_fg }, + TSConstMacro = { fg = ansi.black }, + TSError = { bg = mistake.bg, fg = mistake.fg }, + TSException = { fg = ansi.black }, + TSField = { fg = ansi.black }, + TSFunction = { fg = ansi.black }, + TSFuncBuiltin = { fg = ansi.black }, + TSFuncMacro = { fg = ansi.black }, + TSKeyword = { fg = ansi.black }, + TSKeywordFunction = { fg = ansi.black }, + TSLabel = { fg = ansi.black }, + TSMethod = { fg = ansi.black }, + TSNamespace = { fg = ansi.black }, + TSNone = { fg = const_fg }, + TSParameter = { fg = ansi.black }, + TSParameterReference = { fg = ansi.black }, + TSProperty = { fg = ansi.black }, + TSPunctDelimiter = { fg = punct_fg }, + TSPunctBracket = { fg = punct_fg }, + TSPunctSpecial = { fg = punct_fg }, + TSRepeat = { fg = ansi.black }, + TSString = { fg = string_fg }, + TSStringRegex = { bg = bg, fg = "#777777" }, + TSStringEscape = { bg = bg, fg = "#777777" }, + TSSymbol = {}, + TSType = { fg = ansi.black }, + TSTypeBuiltin = { fg = ansi.black }, + TSVariable = { fg = ansi.black }, + TSVariableBuiltin = { fg = ansi.black }, + TSTag = { fg = ansi.black }, + TSTagDelimiter = { fg = punct_fg }, + TSText = { fg = ansi.black }, + + ["@attribute"] = {}, + ["@constructor"] = { fg = ansi.black }, + ["@conditional"] = { fg = ansi.black }, + ["@constant.builtin"] = { fg = const_fg }, + ["@constant.macro"] = { fg = ansi.black }, + ["@error"] = { bg = mistake.bg, fg = mistake.fg }, + ["@exception"] = { fg = ansi.black }, + ["@field"] = { fg = ansi.black }, + ["@function"] = { fg = ansi.black }, + ["@function.builtin"] = { fg = ansi.black }, + ["@function.macro"] = { fg = ansi.black }, + ["@keyword"] = { fg = ansi.black }, + ["@keyword.function"] = { fg = ansi.black }, + ["@label"] = { fg = ansi.black }, + ["@method"] = { fg = ansi.black }, + ["@module"] = { fg = ansi.black }, + ["@namespace"] = { fg = ansi.black }, + ["@none"] = { fg = const_fg }, + ["@parameter"] = { fg = ansi.black }, + ["@parameter.reference"] = { fg = ansi.black }, + ["@property"] = { fg = ansi.black }, + ["@punctuation.delimiter"] = { fg = punct_fg }, + ["@punctuation.bracket"] = { fg = punct_fg }, + ["@punctuation.special"] = { fg = punct_fg }, + ["@repeat"] = { fg = ansi.black }, + ["@string"] = { fg = string_fg }, + ["@string.regex"] = { bg = bg, fg = "#777777" }, + ["@string.escape"] = { bg = bg, fg = "#777777" }, + ["@symbol"] = {}, + ["@type"] = { fg = ansi.black }, + ["@type.builtin"] = { fg = ansi.black }, + ["@variable"] = { fg = ansi.black }, + ["@variable.builtin"] = { fg = ansi.black }, + ["@tag"] = { fg = ansi.black }, + ["@tag.delimiter"] = { fg = punct_fg }, + ["@text"] = { fg = ansi.black }, + ["@text.note"] = { bg = "#dddddd", fg = ansi.blue }, + ["@text.warning"] = { bg = "#FFDEAA", fg = ansi.blue }, + + --- Theme specific + ["@AlabasterConstant"] = { fg = const_fg }, + ["@AlabasterDefinition"] = { fg = def_fg }, + ["@AlabasterPunct"] = { fg = punct_fg }, + ["@AlabasterString"] = { fg = string_fg }, + ["@AlabasterHashbang"] = { fg = dim_comment }, + --- Gitsigns + GitSignsAdd = { fg = "#6abf40" }, + GitSignsChange = { fg = diffchange }, + GitSignsDelete = { fg = diffdelete }, + --- Telescope + TelescopeBorder = { fg = "#abbdc0" }, + TelescopeMatching = { fg = "#CC6F14" }, + TelescopeMultiSelection = { fg = ansi.magenta }, + TelescopePromptPrefix = { fg = ansi.blue }, + TelescopeSelectionCaret = { fg = mistake.fg }, + TelescopeTitle = { fg = ansi.yellow }, + TelescopeResultsTitle = { fg = ansi.yellow }, + --- fzf-lua + FzfLuaBorder = { fg = "#abbdc0" }, + --- Neogit + NeogitPopupActionDisabled = { fg = darker_fg }, + NeogitPopupActionKey = { fg = ansi.magenta }, + NeogitPopupOptionDisabled = { fg = darker_fg }, + NeogitPopupOptionKey = { fg = ansi.blue }, + NeogitPopupSwitchDisabled = { fg = darker_fg }, + NeogitPopupSwitchEnabled = { fg = ansi.cyan }, + NeogitPopupSwitchKey = { fg = ansi.magenta }, + --- Fugitive + diffAdded = { link = "DiffAdd" }, + diffRemoved = { link = "DiffDelete" }, + --- Startify + StartifyBracket = { fg = darker_fg }, + StartifyFile = { fg = ansi.black }, + StartifySection = { fg = ansi.green }, + StartifySlash = { fg = "#4e6e75" }, + StartifyPath = { fg = "#4e6e75" }, + --- Statusline + StatuslineAdd = { fg = diffadd, bg = statusline }, + StatuslineErr = { fg = "#8E1410", bg = statusline }, + StatuslineHint = { fg = hint, bg = statusline }, + StatuslineInfo = { fg = info, bg = statusline }, + StatuslineWarn = { fg = warn, bg = statusline }, + StatuslineBlue = { fg = ansi.blue, bg = statusline }, + StatuslineRed = { fg = ansi.red, bg = statusline }, + StatuslineGreen = { fg = ansi.green, bg = statusline }, + StatuslineCyan = { fg = ansi.cyan, bg = statusline }, + StatuslineMagenta = { fg = ansi.magenta, bg = statusline }, + --- ALE + ALEWarningSign = { fg = warn }, + --- vim-matchup + MatchupVirtualText = { fg = ansi.yellow }, + --- For `highlight link` + AlabasterBlack = { fg = ansi.black }, + AlabasterBlue = { fg = ansi.blue }, + AlabasterBrightYellow = { fg = ansi.brightyellow }, + AlabasterCyan = { fg = ansi.cyan }, + AlabasterGreen = { fg = ansi.green }, + AlabasterBrightGreen = { fg = "#60cb00" }, + AlabasterMagenta = { fg = ansi.magenta }, + AlabasterRed = { fg = ansi.red }, + AlabasterWhite = { fg = ansi.black }, + AlabasterYellow = { fg = ansi.yellow }, + --- Hop + HopNextKey = { fg = ansi.yellow }, + HopNextKey1 = { fg = ansi.blue }, + HopNextKey2 = { fg = "#17A2D6" }, + HopUnmatched = { fg = "#bfbfbf" }, + --- Lightspeed + LightspeedGreyWash = { fg = "#bfbfbf" }, + --- checkhealth + healthSuccess = { fg = ansi.green, bg = bg }, + --- cmp + CmpItemMenuDefault = { fg = ansi.magenta }, + --- nvim-ts-rainbow + rainbowcol1 = { fg = ansi.yellow }, + rainbowcol2 = { fg = ansi.magenta }, + rainbowcol3 = { fg = ansi.blue }, + rainbowcol4 = { fg = ansi.green }, + rainbowcol5 = { fg = ansi.brightyellow }, + rainbowcol6 = { fg = ansi.red }, + rainbowcol7 = { fg = ansi.cyan }, + --- Iswap + ISwapSnipe = { bg = ansi.yellow, fg = bg }, + ISwapGrey = { fg = "#bfbfbf" }, + --- vim-dadbod-ui + dbui_help = { fg = dim_comment }, + dbui_connection_source = { fg = dim_comment }, + --- nvim-dap-virtual-text + NvimDapVirtualText = { bg = "#78D2C9", fg = fg }, + --- Noice + NoiceCmdlineIcon = { link = "AlabasterBrightGreen" }, + NoiceCmdlinePopupBorder = { link = "AlabasterBrightGreen" }, + NoiceConfirmBorder = { link = "AlabasterBrightGreen" }, + NoiceCmdlinePopupBorderCmdline = { link = "AlabasterBrightGreen" }, + NoiceCmdlineIconCmdline = { link = "AlabasterBrightGreen" }, + NoiceCmdlinePopupBorderFilter = { link = "AlabasterBrightGreen" }, + NoiceCmdlineIconFilter = { link = "AlabasterBrightGreen" }, + NoiceCmdlinePopupBorderLua = { link = "AlabasterBrightGreen" }, + NoiceCmdlineIconLua = { link = "AlabasterBrightGreen" }, + NoiceCmdlinePopupBorderSearch = { link = "AlabasterYellow" }, + NoiceCmdlineIconSearch = { link = "AlabasterYellow" }, + -- Languages + --- asm + asmDirective = { fg = dim_comment }, + nasmLabel = { link = "@AlabasterDefinition" }, + ["@lsp.mod.declaration"] = { fg = fg }, + ["@lsp.type.enumMember"] = { fg = fg }, + ["@lsp.type.function"] = { fg = fg }, + ["@lsp.type.method"] = { fg = fg }, + ["@lsp.type.selfKeyword"] = { fg = fg }, + ["@lsp.typemod.class.declaration"] = { fg = def_fg }, + ["@lsp.typemod.class.definition"] = { fg = def_fg }, + ["@lsp.typemod.enum.declaration"] = { fg = def_fg }, + ["@lsp.typemod.enumMember.defaultLibrary"] = { fg = fg }, + ["@lsp.typemod.function.declaration"] = { fg = def_fg }, + ["@lsp.typemod.function.definition"] = { fg = def_fg }, + ["@lsp.typemod.macro.declaration"] = { fg = def_fg }, + ["@lsp.typemod.method.declaration"] = { fg = def_fg }, + ["@lsp.typemod.selfKeyword"] = { fg = fg }, + ["@lsp.typemod.struct.declaration"] = { fg = def_fg }, + ["@lsp.typemod.type.declaration"] = { fg = def_fg }, + } +end + +for group, hl in pairs(theme) do + vim.api.nvim_set_hl(0, group, hl) +end + +-- vi:nowrap |
