diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000..56619e8 --- /dev/null +++ b/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 160 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferSingle" +call_parentheses = "Always" diff --git a/init.lua b/init.lua index 299b189..c2ca9ea 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,148 @@ -vim.g.skip_ts_context_commentstring_module = true -require "basics" -require "plugins" -require "keys" +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' +vim.g.have_nerd_font = true + +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.mouse = 'a' +vim.opt.showmode = false +vim.schedule(function() + vim.opt.clipboard = 'unnamedplus' + vim.g.clipboard = { + name = 'xclip', + copy = { + ['+'] = 'xclip -selection clipboard', + ['*'] = 'xclip -selection primary', + }, + paste = { + ['+'] = { 'xclip', '-selection', 'clipboard', '-o' }, + ['*'] = { 'xclip', '-selection', 'primary', '-o' }, + }, + cache_enabled = true, + } +end) +vim.opt.breakindent = true +vim.opt.undofile = true +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.updatetime = 250 +vim.opt.timeoutlen = 300 +vim.opt.splitright = true +vim.opt.splitbelow = true +vim.opt.list = true +vim.opt.inccommand = 'split' +vim.opt.cursorline = true +vim.opt.scrolloff = 10 +vim.opt.confirm = true + +-- Convert Tab to spaces +vim.cmd([[filetype plugin indent on]]) +vim.o.tabstop = 2 +vim.o.shiftwidth = 2 +vim.o.expandtab = true + +vim.filetype.add({ + extension = { + zsh = 'zsh', + sh = 'sh', + }, + filename = { + ['.zshrc'] = 'zsh', + ['.zshenv'] = 'zsh', + }, +}) + +require('diagnostic') +require('keybinds') + +vim.api.nvim_create_autocmd('TextYankPost', { + desc = 'Highlight when yanking (copying) text', + group = vim.api.nvim_create_augroup('highlight-yank', { clear = true }), + callback = function() + vim.highlight.on_yank() + end, +}) + +-- Setup Lazy +local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = 'https://github.com/folke/lazy.nvim.git' + local out = vim.fn.system({ 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + error('Error cloning lazy.nvim:\n' .. out) + end +end ---@diagnostic disable-next-line: undefined-field +vim.opt.rtp:prepend(lazypath) + +require('lazy').setup({ + require('plugins/web-devicons'), + require('plugins/neo-tree'), + require('plugins/conform'), + require('plugins/treesitter'), + require('plugins/lsp'), + require('plugins/telescope'), + { + 'folke/tokyonight.nvim', + lazy = false, + priority = 1000, + opts = {}, + config = function() + ---@diagnostic disable-next-line: missing-fields + require('tokyonight').setup({ + transparent = true, + terminal_colors = false, + ---@param highlights tokyonight.Highlights + ---@param colors ColorScheme + on_highlights = function(highlights, colors) + highlights.TabLineSel = { bg = '#252d37' } + end, + }) + vim.cmd([[colorscheme tokyonight-night]]) + end, + }, + require('plugins/none-ls'), + require('plugins/blink'), + require('plugins/pairs'), + require('plugins/ccc'), + require('plugins/heirline'), + require('plugins/lspsaga'), + { 'folke/ts-comments.nvim', opts = {}, event = 'VeryLazy' }, + { + 'folke/todo-comments.nvim', + dependencies = { 'nvim-lua/plenary.nvim' }, + opts = {}, + }, + { + 'MagicDuck/grug-far.nvim', + opts = {}, + }, + { + 'windwp/nvim-ts-autotag', + opts = {}, + }, + { + 'lewis6991/gitsigns.nvim', + dependencies = { + 'nvim-lua/plenary.nvim', + }, + opts = {}, + }, + { + 'axelvc/template-string.nvim', + opts = {}, + }, + 'jghauser/mkdir.nvim', + { + 'supermaven-inc/supermaven-nvim', + config = function() + if not (vim.fn.has_key(vim.fn.environ(), 'LOAD_SUPERMAVEN') == 0) then + require('supermaven-nvim').setup({}) + end + end, + }, + { + 'folke/todo-comments.nvim', + dependencies = 'nvim-lua/plenary.nvim', + opts = {}, + }, +}) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 8e8c77f..6eb2778 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -1,5 +1,6 @@ # linux_display_server x11 # Font +# font_family family='Berkeley Mono Trial' postscript_name=BerkeleyMonoTrial-Regular font_family Input Mono Narrow # font_family CaskaydiaCove Nerd Font Mono font_size 11 diff --git a/lazy-lock.json b/lazy-lock.json index 892b5a5..a885f37 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,254 +1,36 @@ { - "Comment.nvim": { - "branch": "master", - "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" - }, - "FixCursorHold.nvim": { - "branch": "master", - "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" - }, - "LuaSnip": { - "branch": "master", - "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" - }, - "blink.cmp": { - "branch": "main", - "commit": "b6f11a0aa33e601c469a126e3ed6e35208fe3ea3" - }, - "ccc.nvim": { - "branch": "main", - "commit": "b57cbaf8db3ac43c56c9e2c7f3812944638260ed" - }, - "cmp-npm": { - "branch": "main", - "commit": "2337f109f51a09297596dd6b538b70ccba92b4e4" - }, - "crates.nvim": { - "branch": "main", - "commit": "1d92a7f449a2a76d8f4c3459bd98f450e76d2ea3" - }, - "cspell.nvim": { - "branch": "main", - "commit": "fb104ec1e06e984baefcad6a0559381f5d933442" - }, - "editorconfig-vim": { - "branch": "master", - "commit": "91bd0b0a2c6a72a110ab9feae335e1224480c233" - }, - "fidget.nvim": { - "branch": "main", - "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" - }, - "formatter.nvim": { - "branch": "master", - "commit": "eb89a1f3e079f1b9680bc7293b75fffccb5e1598" - }, - "friendly-snippets": { - "branch": "main", - "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" - }, - "gitsigns.nvim": { - "branch": "main", - "commit": "8b00147519d6f8353867d5d0b55f587306b0cfb6" - }, - "heirline.nvim": { - "branch": "master", - "commit": "af3f441ea10f96105e1af14cd37bf213533812d2" - }, - "lazy.nvim": { - "branch": "main", - "commit": "ac21a639c7ecfc8b822dcc9455deceea3778f839" - }, - "lightspeed.nvim": { - "branch": "main", - "commit": "fcc72d8a4d5f4ebba62d8a3a0660f88f1b5c3b05" - }, - "lsp_signature.nvim": { - "branch": "master", - "commit": "5b64964ed02098c85613ee3d20f96bed1dfb64cc" - }, - "lspkind-nvim": { - "branch": "master", - "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" - }, - "markview.nvim": { - "branch": "main", - "commit": "f1e2a57388b61fff8e9d7519ce05cee27a59a57e" - }, - "mason-lspconfig.nvim": { - "branch": "main", - "commit": "a8e6efcf623b86bae6d2223eede7c43883329f80" - }, - "mason-null-ls.nvim": { - "branch": "main", - "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" - }, - "mason.nvim": { - "branch": "main", - "commit": "5664dd5deb3ac9527da90691543eb28df51c1ef8" - }, - "mkdir.nvim": { - "branch": "main", - "commit": "c55d1dee4f099528a1853b28bb28caa802eba217" - }, - "monokai.nvim": { - "branch": "master", - "commit": "c295909d53c7577af7eece5ae83855384dd900a6" - }, - "neo-tree.nvim": { - "branch": "main", - "commit": "e96fd85bf18bc345dab332b345098fa5460dffac" - }, - "neotest": { - "branch": "master", - "commit": "d66cf4e05a116957f0d3a7755a24291c7d1e1f72" - }, - "neotest-jest": { - "branch": "main", - "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" - }, - "neotest-zig": { - "branch": "main", - "commit": "c7a1a39626fa90e639fb640b6322739060a2acf3" - }, - "none-ls.nvim": { - "branch": "main", - "commit": "02f5275d8a5546092f01306f162c00c71d6e0281" - }, - "nui.nvim": { - "branch": "main", - "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" - }, - "nvim-autopairs": { - "branch": "master", - "commit": "68f0e5c3dab23261a945272032ee6700af86227a" - }, - "nvim-dap": { - "branch": "master", - "commit": "52302f02fea3a490e55475de52fa4deb8af2eb11" - }, - "nvim-dap-ui": { - "branch": "master", - "commit": "bc81f8d3440aede116f821114547a476b082b319" - }, - "nvim-lspconfig": { - "branch": "master", - "commit": "7af2c37192deae28d1305ae9e68544f7fb5408e1" - }, - "nvim-nio": { - "branch": "master", - "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" - }, - "nvim-treesitter": { - "branch": "master", - "commit": "00a513f87ee3c339c2024b08db3eb63ba7736ed6" - }, - "nvim-ts-autotag": { - "branch": "main", - "commit": "4c00b86bd1246ba9c4cd50a823d8296cd2eb9663" - }, - "nvim-ts-context-commentstring": { - "branch": "main", - "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" - }, - "nvim-vtsls": { - "branch": "main", - "commit": "45c6dfea9f83a126e9bfc5dd63430562b3f8af16" - }, - "nvim-web-devicons": { - "branch": "master", - "commit": "1020869742ecb191f260818234517f4a1515cfe8" - }, - "nvim-window-picker": { - "branch": "main", - "commit": "0dfef64eaf063e1cd27983ab11a30e7bc5b74fac" - }, - "omnisharp-vim": { - "branch": "master", - "commit": "cdbf65bc4385d7026428d2f392b40a317725cc9c" - }, - "outline.nvim": { - "branch": "main", - "commit": "f01eae624e6170656b6fadd6d7b8717636078bd6" - }, - "packer.nvim": { - "branch": "master", - "commit": "ea0cc3c59f67c440c5ff0bbe4fb9420f4350b9a3" - }, - "plantuml-syntax": { - "branch": "master", - "commit": "9d4900aa16674bf5bb8296a72b975317d573b547" - }, - "playground": { - "branch": "master", - "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" - }, - "plenary.nvim": { - "branch": "master", - "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" - }, - "popfix": { - "branch": "master", - "commit": "bf3cc436df63cd535350d5ef1b951c91554d4b01" - }, - "popui.nvim": { - "branch": "master", - "commit": "4d903e46fdb5eef25fa79ef1b598f5340a2674b0" - }, - "popup.nvim": { - "branch": "master", - "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" - }, - "presence.nvim": { - "branch": "main", - "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" - }, - "roslyn.nvim": { - "branch": "main", - "commit": "3f86e52047f1697117c73d4597729b25bc06839e" - }, - "snacks.nvim": { - "branch": "main", - "commit": "57445057395fd1f5b315defa367c57651ea2e5f2" - }, - "statuscol.nvim": { - "branch": "main", - "commit": "a2a0e3ed55ba0f636ce0b2ccf61bca4050edd288" - }, - "supermaven-nvim": { - "branch": "main", - "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" - }, - "tailwind-tools.nvim": { - "branch": "master", - "commit": "abe7368392345c53174979c2cf033e832de80ef8" - }, - "telescope-ui-select.nvim": { - "branch": "master", - "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" - }, - "telescope.nvim": { - "branch": "master", - "commit": "78857db9e8d819d3cc1a9a7bdc1d39d127a36495" - }, - "template-string.nvim": { - "branch": "main", - "commit": "da5f326b65fb74fd068aa1d8b55461b64c8fb23b" - }, - "todo-comments.nvim": { - "branch": "main", - "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" - }, - "typescript.nvim": { - "branch": "main", - "commit": "4de85ef699d7e6010528dcfbddc2ed4c2c421467" - }, - "vim-caddyfile": { - "branch": "master", - "commit": "24fe0720551883e407cb70ae1d7c03f162d1d5a0" - }, - "vim-repeat": { - "branch": "master", - "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" - } + "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, + "ccc.nvim": { "branch": "main", "commit": "9d1a256e006decc574789dfc7d628ca11644d4c2" }, + "conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" }, + "cspell.nvim": { "branch": "main", "commit": "fb104ec1e06e984baefcad6a0559381f5d933442" }, + "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gitsigns.nvim": { "branch": "main", "commit": "1b0350ab707713b2bc6c236151f1a324175347b1" }, + "grug-far.nvim": { "branch": "main", "commit": "b3f9412b1ed76f14cfc68e1ee899873544330c80" }, + "heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lspsaga.nvim": { "branch": "main", "commit": "8efe00d6aed9db6449969f889170f1a7e43101a1" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "c4c84f4521d62de595c0d0f718a9a40c1890c8ce" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, + "mini.pairs": { "branch": "main", "commit": "42407ccb80ec59c84e7c91d815f42ed90a8cc093" }, + "mkdir.nvim": { "branch": "main", "commit": "c55d1dee4f099528a1853b28bb28caa802eba217" }, + "neo-tree.nvim": { "branch": "main", "commit": "7bc06b5efc5554d10f73a8aa508e02c03a83c2a0" }, + "none-ls.nvim": { "branch": "main", "commit": "db2a48b79cfcdab8baa5d3f37f21c78b6705c62e" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-lspconfig": { "branch": "master", "commit": "6bba673aa8993eceec233be17b42ddfb9540794b" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, + "nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" }, + "nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "schemastore.nvim": { "branch": "main", "commit": "6af106298a8fd50af775d5281ee39a102556e352" }, + "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, + "template-string.nvim": { "branch": "main", "commit": "da5f326b65fb74fd068aa1d8b55461b64c8fb23b" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, + "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" } } diff --git a/lua/basics.lua b/lua/basics.lua deleted file mode 100644 index 18f8cc9..0000000 --- a/lua/basics.lua +++ /dev/null @@ -1,43 +0,0 @@ -local set = vim.o - -set.number = true -set.relativenumber = true -set.clipboard = "unnamedplus" -set.mouse = "a" -set.termguicolors = true -set.swapfile = false -set.cursorline = true -set.cursorlineopt = "number" -set.scrolloff = 5 - -vim.cmd [[filetype plugin indent on]] -set.tabstop = 2 -set.shiftwidth = 2 -set.expandtab = true - --- vim.cmd [[autocmd FileType markdown setlocal spell spelllang=de,en]] --- vim.cmd [[autocmd FileType tex setlocal spell spelllang=de,en]] -vim.cmd [[autocmd bufnewfile,bufread *.tsx set filetype=typescriptreact]] -vim.cmd [[autocmd bufnewfile,bufread *.jsx set filetype=javascriptreact]] -vim.cmd [[autocmd bufnewfile,bufread Jenkinsfile set filetype=groovy]] - -set.splitright = true -set.splitbelow = true - -set.signcolumn = "auto:2" - --- set leader -vim.g.mapleader = " " - -vim.filetype.add( - { - extension = { - zsh = "sh", - sh = "sh" - }, - filename = { - [".zshrc"] = "sh", - [".zshenv"] = "sh" - } - } -) diff --git a/lua/diagnostic.lua b/lua/diagnostic.lua new file mode 100644 index 0000000..bacb29d --- /dev/null +++ b/lua/diagnostic.lua @@ -0,0 +1,26 @@ +vim.diagnostic.config({ + severity_sort = true, + float = { border = 'rounded', source = 'if_many' }, + underline = true, + signs = { + text = { + [vim.diagnostic.severity.ERROR] = '󰅚 ', + [vim.diagnostic.severity.WARN] = '󰀪 ', + [vim.diagnostic.severity.INFO] = '󰋽 ', + [vim.diagnostic.severity.HINT] = '󰌶 ', + }, + }, + virtual_text = { + source = 'if_many', + spacing = 2, + format = function(diagnostic) + local diagnostic_message = { + [vim.diagnostic.severity.ERROR] = diagnostic.message, + [vim.diagnostic.severity.WARN] = diagnostic.message, + [vim.diagnostic.severity.INFO] = diagnostic.message, + [vim.diagnostic.severity.HINT] = diagnostic.message, + } + return diagnostic_message[diagnostic.severity] + end, + }, +}) diff --git a/lua/json-schema.lua b/lua/json-schema.lua deleted file mode 100644 index 52e1219..0000000 --- a/lua/json-schema.lua +++ /dev/null @@ -1,2657 +0,0 @@ -return { - ["$schema"] = "https://json.schemastore.org/schema-catalog.json", - version = 1.0, - schemas = { - { - name = ".adonisrc.json", - description = "AdonisJS configuration file", - fileMatch = {".adonisrc.json"}, - url = "https://raw.githubusercontent.com/adonisjs/application/master/adonisrc.schema.json" - }, - { - name = ".aiproj.json", - description = "Settings for project analysis by the application inspector", - fileMatch = {".aiproj.json"}, - url = "https://json.schemastore.org/aiproj.json" - }, - { - name = "angular.json", - description = "Angular configuration file", - fileMatch = {"angular.json"}, - url = "https://raw.githubusercontent.com/angular/angular-cli/master/packages/angular/cli/lib/config/workspace-schema.json" - }, - { - name = ".angular-cli.json", - description = "Angular CLI configuration file", - fileMatch = {".angular-cli.json", "angular-cli.json"}, - url = "https://raw.githubusercontent.com/angular/angular-cli/v10.1.6/packages/angular/cli/lib/config/schema.json" - }, - { - name = "Ansible Role", - description = "Ansible role task files", - url = "https://json.schemastore.org/ansible-role-2.9.json", - fileMatch = {"**/roles/**/tasks/*.yml", "**/roles/**/tasks/*.yaml"}, - versions = { - ["2.0"] = "https://json.schemastore.org/ansible-role-2.0.json", - ["2.1"] = "https://json.schemastore.org/ansible-role-2.1.json", - ["2.2"] = "https://json.schemastore.org/ansible-role-2.2.json", - ["2.3"] = "https://json.schemastore.org/ansible-role-2.3.json", - ["2.4"] = "https://json.schemastore.org/ansible-role-2.4.json", - ["2.5"] = "https://json.schemastore.org/ansible-role-2.5.json", - ["2.6"] = "https://json.schemastore.org/ansible-role-2.6.json", - ["2.7"] = "https://json.schemastore.org/ansible-role-2.7.json", - ["2.9"] = "https://json.schemastore.org/ansible-role-2.9.json" - } - }, - { - name = "Ansible Playbook", - description = "Ansible playbook files", - url = "https://json.schemastore.org/ansible-playbook.json", - fileMatch = {"playbook.yml", "playbook.yaml"} - }, - { - name = "Ansible Inventory", - description = "Ansible inventory files", - url = "https://json.schemastore.org/ansible-inventory.json", - fileMatch = {"inventory.yml", "inventory.yaml"} - }, - { - name = "Ansible Collection Galaxy", - description = "Ansible Collection Galaxy metadata", - url = "https://raw.githubusercontent.com/ansible-community/schemas/main/f/ansible-galaxy.json", - fileMatch = {"galaxy.yml"} - }, - { - name = "apple-app-site-association", - description = "Apple Universal Link, App Site Association", - fileMatch = {"apple-app-site-association"}, - url = "https://json.schemastore.org/apple-app-site-association.json" - }, - { - name = "app-definition.yaml", - description = "Appsemble app definition", - fileMatch = {"app-definition.yaml"}, - url = "https://appsemble.app/api.json#/components/schemas/AppDefinition" - }, - { - name = ".appsemblerc.yaml", - description = "Appsemble RC file", - fileMatch = {".appsemblerc.yaml"}, - url = "https://json.schemastore.org/appsemblerc.json" - }, - { - name = "appsscript.json", - description = "Google Apps Script manifest file", - fileMatch = {"appsscript.json"}, - url = "https://json.schemastore.org/appsscript.json" - }, - { - name = "appsettings.json", - description = "ASP.NET Core's configuration file", - fileMatch = {"appsettings.json", "appsettings.*.json"}, - url = "https://json.schemastore.org/appsettings.json" - }, - { - name = "appveyor.yml", - description = "AppVeyor CI configuration file", - fileMatch = {"appveyor.yml"}, - url = "https://json.schemastore.org/appveyor.json" - }, - { - name = "arc.json", - description = "A JSON schema for OpenJS Architect", - fileMatch = {"arc.json", "arc.yml", "arc.yaml"}, - url = "https://raw.githubusercontent.com/architect/parser/v2.3.0/arc-schema.json" - }, - { - name = "Argo Workflows", - description = "Argo Workflow configuration file", - url = "https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json" - }, - { - name = "artifacthub-repo.yml", - description = "Artifact Hub repository metadata file", - fileMatch = {"artifacthub-repo.yml"}, - url = "https://json.schemastore.org/artifacthub-repo.json" - }, - { - name = "Avro Avsc", - description = "Avro Schema Avsc file", - fileMatch = {"*.avsc"}, - url = "https://json.schemastore.org/avro-avsc.json" - }, - { - name = "Azure IoT EdgeAgent deployment", - description = "Azure IoT EdgeAgent deployment schema", - url = "https://json.schemastore.org/azure-iot-edgeagent-deployment-1.1.json", - versions = { - ["1.0"] = "https://json.schemastore.org/azure-iot-edgeagent-deployment-1.0.json", - ["1.1"] = "https://json.schemastore.org/azure-iot-edgeagent-deployment-1.1.json" - } - }, - { - name = "Azure IoT EdgeHub deployment", - description = "Azure IoT EdgeHub deployment schema", - url = "https://json.schemastore.org/azure-iot-edgehub-deployment-1.2.json", - versions = { - ["1.0"] = "https://json.schemastore.org/azure-iot-edgehub-deployment-1.0.json", - ["1.1"] = "https://json.schemastore.org/azure-iot-edgehub-deployment-1.1.json", - ["1.2"] = "https://json.schemastore.org/azure-iot-edgehub-deployment-1.2.json" - } - }, - { - name = "Azure IoT Edge deployment", - description = "Azure IoT Edge deployment schema", - url = "https://json.schemastore.org/azure-iot-edge-deployment-2.0.json", - versions = { - ["1.0"] = "https://json.schemastore.org/azure-iot-edge-deployment-1.0.json", - ["1.1"] = "https://json.schemastore.org/azure-iot-edge-deployment-2.0.json" - } - }, - { - name = "Azure IoT Edge deployment template", - description = "Azure IoT Edge deployment template schema", - fileMatch = {"deployment.template.json", "deployment.debug.template.json"}, - url = "https://json.schemastore.org/azure-iot-edge-deployment-template-4.0.json", - versions = { - ["1.0"] = "https://json.schemastore.org/azure-iot-edge-deployment-template-1.0.json", - ["1.1"] = "https://json.schemastore.org/azure-iot-edge-deployment-template-2.0.json", - ["1.2"] = "https://json.schemastore.org/azure-iot-edge-deployment-template-3.0.json", - ["1.3"] = "https://json.schemastore.org/azure-iot-edge-deployment-template-4.0.json" - } - }, - { - name = "Azure Pipelines", - description = "Azure Pipelines YAML pipelines definition", - fileMatch = {"azure-pipelines.yml", "azure-pipelines.yaml"}, - url = "https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/v1.174.2/service-schema.json" - }, - { - name = "Foxx Manifest", - description = "ArangoDB Foxx service manifest file", - fileMatch = {"manifest.json"}, - url = "https://json.schemastore.org/foxx-manifest.json" - }, - { - name = ".asmdef", - description = "Unity 3D assembly definition file", - fileMatch = {"*.asmdef"}, - url = "https://json.schemastore.org/asmdef.json" - }, - { - name = "babelrc.json", - description = "Babel configuration file", - fileMatch = {".babelrc", "babel.config.json"}, - url = "https://json.schemastore.org/babelrc.json" - }, - { - name = ".backportrc.json", - description = "Backport configuration file", - fileMatch = {".backportrc.json"}, - url = "https://json.schemastore.org/backportrc.json" - }, - { - name = "batect.yml", - description = "Batect configuration file", - fileMatch = {"batect.yml", "batect-bundle.yml"}, - url = "https://ide-integration.batect.dev/v1/configSchema.json" - }, - { - name = "bamboo-spec", - description = "The Bamboo Specs allows you to define Bamboo configuration as code, and have corresponding plans/deployments created or updated automatically in Bamboo", - url = "https://json.schemastore.org/bamboo-spec.json", - fileMatch = {"bamboo-specs/*.yaml", "bamboo-specs/*.yml"} - }, - { - name = "beef-database-codegen", - description = "Beef (Business Entity Execution Framework) database code-generation configuration.", - url = "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/database.beef.json", - fileMatch = {"database.beef.yaml", "database.beef.yml", "database.beef.json"} - }, - { - name = "beef-entity-codegen", - description = "Beef (Business Entity Execution Framework) entity code-generation configuration.", - url = "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/entity.beef.json", - fileMatch = { - "entity.beef.yaml", - "entity.beef.yml", - "entity.beef.json", - "refdata.beef.yaml", - "refdata.beef.yml", - "refdata.beef.json", - "datamodel.beef.yaml", - "datamodel.beef.yml", - "datamodel.beef.json" - } - }, - { - name = "bitbucket-pipelines", - description = "Bitbucket Pipelines CI/CD manifest schema", - url = "https://bitbucket.org/atlassianlabs/atlascode/raw/main/resources/schemas/pipelines-schema.json", - fileMatch = {"bitbucket-pipelines.yml"} - }, - { - name = "bitrise", - description = "The configuration format of the Bitrise CLI. Bitrise is a collection of tools and services to help you with the development and automation of your software projects, with a main focus on mobile apps.", - url = "https://json.schemastore.org/bitrise.json", - fileMatch = {"bitrise.yml", "bitrise.yaml", "bitrise.json"} - }, - { - name = "bitrise-step", - description = "Steps and Workflows are the heart of how Bitrise works. A Bitrise build is simply a series of Steps. Bitrise is a collection of tools and services to help you with the development and automation of your software projects, with a main focus on mobile apps.", - url = "https://json.schemastore.org/bitrise-step.json", - fileMatch = {"step.yml"} - }, - { - name = ".bootstraprc", - description = "Webpack bootstrap-loader configuration file", - fileMatch = {".bootstraprc"}, - url = "https://json.schemastore.org/bootstraprc.json" - }, - { - name = "bower.json", - description = "Bower package description file", - fileMatch = {"bower.json", ".bower.json"}, - url = "https://json.schemastore.org/bower.json" - }, - { - name = ".bowerrc", - description = "Bower configuration file", - fileMatch = {".bowerrc"}, - url = "https://json.schemastore.org/bowerrc.json" - }, - { - name = "behat.yml", - description = "Behat configuration file", - fileMatch = {"behat.yml", "*.behat.yml"}, - url = "https://json.schemastore.org/behat.json" - }, - { - name = "bozr.suite.json", - description = "Bozr test suite file", - fileMatch = {".suite.json", ".xsuite.json"}, - url = "https://json.schemastore.org/bozr.json" - }, - { - name = "browser.i18n.json", - description = "browser.i18n messages.json translation file", - fileMatch = {"messages.json"}, - url = "https://json.schemastore.org/browser.i18n.json" - }, - { - name = "bucklescript", - description = "BuckleScript configuration file", - fileMatch = {"bsconfig.json"}, - url = "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/8.2.0/docs/docson/build-schema.json" - }, - { - name = "Bukkit plugin.yml", - description = "Schema for Minecraft Bukkit plugin description files", - fileMatch = {"plugin.yml"}, - url = "https://json.schemastore.org/bukkit-plugin.json" - }, - { - name = "Buildkite", - description = "Schema for Buildkite pipeline.yml files", - fileMatch = { - "buildkite.yml", - "buildkite.yaml", - "buildkite.json", - "buildkite.*.yml", - "buildkite.*.yaml", - "buildkite.*.json", - ".buildkite/pipeline.yml", - ".buildkite/pipeline.yaml", - ".buildkite/pipeline.json", - ".buildkite/pipeline.*.yml", - ".buildkite/pipeline.*.yaml", - ".buildkite/pipeline.*.json" - }, - url = "https://raw.githubusercontent.com/buildkite/pipeline-schema/master/schema.json" - }, - { - name = ".build.yml", - description = "Sourcehut Build Manifest", - fileMatch = {".build.yml"}, - url = "https://json.schemastore.org/sourcehut-build-0.65.0.json", - versions = { - ["0.41.2"] = "https://json.schemastore.org/sourcehut-build-0.41.2.json", - ["0.65.0"] = "https://json.schemastore.org/sourcehut-build-0.65.0.json" - } - }, - { - name = "bundleconfig.json", - description = "Schema for bundleconfig.json files", - fileMatch = {"bundleconfig.json"}, - url = "https://json.schemastore.org/bundleconfig.json" - }, - { - name = "BungeeCord plugin.yml", - description = "Schema for BungeeCord plugin description files", - fileMatch = {"plugin.yml", "bungee.yml"}, - url = "https://json.schemastore.org/bungee-plugin.json" - }, - { - name = "CMake Presets", - description = "Schema for CMake Presets", - fileMatch = {"CMakePresets.json", "CMakeUserPresets.json"}, - url = "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json" - }, - { - name = "Camel YAML DSL", - description = "Schema for Camel YAML DSL", - fileMatch = {"*.camel.yaml", "*.camelk.yaml"}, - url = "https://raw.githubusercontent.com/apache/camel/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json" - }, - { - name = "Carafe", - description = "Schema for Carafe compatible JavaScript Bundles", - url = "https://carafe.fm/schema/draft-02/bundle.schema.json", - versions = { - ["draft-02"] = "https://carafe.fm/schema/draft-02/bundle.schema.json", - ["draft-01"] = "https://carafe.fm/schema/draft-01/bundle.schema.json" - } - }, - { - name = "CityJSON", - description = "Schema for the representation of 3D city models", - url = "https://raw.githubusercontent.com/cityjson/specs/1.0.1/schemas/cityjson.min.schema.json" - }, - { - name = "Helm Chart.yaml", - description = "The Chart.yaml file is required for a chart.", - fileMatch = {"Chart.yaml"}, - url = "https://json.schemastore.org/chart.json" - }, - { - name = "Helm Chart.lock", - description = "The Chart.lock file locks dependencies from Chart.yaml", - fileMatch = {"Chart.lock"}, - url = "https://json.schemastore.org/chart-lock.json" - }, - { - name = "CircleCI config.yml", - description = "Schema for CircleCI 2.0 config files", - fileMatch = {".circleci/config.yml"}, - url = "https://json.schemastore.org/circleciconfig.json" - }, - { - name = "Code Climate", - description = "Configuration file as an alternative for configuring your repository in the settings page.", - fileMatch = {".codeclimate.yml", ".codeclimate.json"}, - url = "https://json.schemastore.org/codeclimate.json" - }, - { - name = ".cirrus.yml", - description = "Cirrus CI configuration files", - fileMatch = {".cirrus.yml"}, - url = "https://json.schemastore.org/cirrus.json" - }, - { - name = ".clasp.json", - description = "Google Apps Script CLI project file", - fileMatch = {".clasp.json"}, - url = "https://json.schemastore.org/clasp.json" - }, - { - name = "cloudify", - description = "Cloudify Blueprint", - fileMatch = {"*.cfy.yaml"}, - url = "https://json.schemastore.org/cloudify.json" - }, - { - name = "codemagic", - description = "JSON schema for Codemagic CI/CD file configuration", - fileMatch = {"codemagic.yaml", "codemagic.yml"}, - url = "https://static.codemagic.io/codemagic-schema.json" - }, - { - name = "JSON schema for Codecov configuration files", - description = "Schema for codecov.yml files.", - fileMatch = {".codecov.yml", "codecov.yml"}, - url = "https://json.schemastore.org/codecov.json" - }, - { - name = "JSON schema for CodeShip Pro services configuration files", - description = "Schema for codeship-services.yml files.", - fileMatch = {"codeship-services.yml"}, - url = "https://json.schemastore.org/codeship-services.json" - }, - { - name = "JSON schema for CodeShip Pro steps configuration files", - description = "Schema for codeship-steps.yml files.", - fileMatch = {"codeship-steps.yml"}, - url = "https://json.schemastore.org/codeship-steps.json" - }, - { - name = "compilerconfig.json", - description = "Schema for compilerconfig.json files", - fileMatch = {"compilerconfig.json"}, - url = "https://json.schemastore.org/compilerconfig.json" - }, - { - name = "compile_commands.json", - description = "LLVM compilation database", - fileMatch = {"compile_commands.json"}, - url = "https://json.schemastore.org/compile-commands.json" - }, - { - name = "commands.json", - description = "Config file for Command Task Runner", - fileMatch = {"commands.json"}, - url = "https://json.schemastore.org/commands.json" - }, - { - name = "cosmos.config.json", - description = "React Cosmos configuration file", - fileMatch = {"cosmos.config.json"}, - url = "https://json.schemastore.org/cosmos-config.json" - }, - { - name = "Chrome Extension", - description = "Google Chrome extension manifest file", - url = "https://json.schemastore.org/chrome-manifest.json" - }, - { - name = "chutzpah.json", - description = "Chutzpah configuration file", - fileMatch = {"chutzpah.json"}, - url = "https://json.schemastore.org/chutzpah.json" - }, - { - name = "contentmanifest.json", - description = "Visual Studio manifest injection file", - fileMatch = {"contentmanifest.json"}, - url = "https://json.schemastore.org/vsix-manifestinjection.json" - }, - { - name = "cloud-sdk-pipeline-config-schema", - description = "SAP Cloud SDK Pipeline configuration", - fileMatch = {"pipeline_config.yml"}, - url = "https://json.schemastore.org/cloud-sdk-pipeline-config-schema.json" - }, - { - name = "cloudbuild.json", - description = "Google Cloud Build configuration file", - fileMatch = { - "cloudbuild.json", - "cloudbuild.yaml", - "cloudbuild.yml", - "*.cloudbuild.json", - "*.cloudbuild.yaml", - "*.cloudbuild.yml" - }, - url = "https://json.schemastore.org/cloudbuild.json" - }, - { - name = "workflows.json", - description = "Google Cloud Workflows configuration file", - fileMatch = { - "workflows.json", - "workflows.yaml", - "workflows.yml", - "*.workflows.json", - "*.workflows.yaml", - "*.workflows.yml" - }, - url = "https://json.schemastore.org/workflows.json" - }, - { - name = "AWS CloudFormation", - description = "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.", - fileMatch = { - "*.cf.json", - "*.cf.yml", - "*.cf.yaml", - "cloudformation.json", - "cloudformation.yml", - "cloudformation.yaml" - }, - url = "https://raw.githubusercontent.com/awslabs/goformation/v4.18.2/schema/cloudformation.schema.json" - }, - { - name = "AWS CloudFormation Serverless Application Model (SAM)", - description = "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application.", - fileMatch = {"serverless.template", "*.sam.json", "*.sam.yml", "*.sam.yaml", "sam.json", "sam.yml", "sam.yaml"}, - url = "https://raw.githubusercontent.com/awslabs/goformation/v4.18.2/schema/sam.schema.json" - }, - { - name = "Citation File Format", - description = "A YAML file with citation metadata for software or datasets.", - fileMatch = {"CITATION.cff"}, - url = "https://citation-file-format.github.io/1.2.0/schema.json" - }, - { - name = "coffeelint.json", - description = "CoffeeLint configuration file", - fileMatch = {"coffeelint.json"}, - url = "https://json.schemastore.org/coffeelint.json" - }, - { - name = "composer.json", - description = "PHP Composer configuration file", - fileMatch = {"composer.json"}, - url = "https://raw.githubusercontent.com/composer/composer/master/res/composer-schema.json" - }, - { - name = "component.json", - description = "Web component file", - fileMatch = {"component.json"}, - url = "https://json.schemastore.org/component.json" - }, - { - name = "config.json", - description = "ASP.NET project config file", - fileMatch = {"config.json"}, - url = "https://json.schemastore.org/config.json" - }, - { - name = "contribute.json", - description = "A JSON schema for open-source project contribution data by Mozilla", - fileMatch = {"contribute.json"}, - url = "https://raw.githubusercontent.com/mozilla/contribute.json/master/schema.json" - }, - { - name = "crowdin.yml", - description = "A JSON schema to configure Crowdin, a crowd-translation platform. See https://support.crowdin.com/configuration-file/.", - fileMatch = {"**/crowdin.yml"}, - url = "https://json.schemastore.org/crowdin.json" - }, - { - name = "cypress.json", - description = "Cypress.io test runner configuration file", - fileMatch = {"cypress.json"}, - url = "https://on.cypress.io/cypress.schema.json" - }, - { - name = ".creatomic", - description = "A config for Atomic Design 4 React generator", - fileMatch = {".creatomic"}, - url = "https://json.schemastore.org/creatomic.json" - }, - { - name = "cspell", - description = "JSON schema for cspell configuration file", - fileMatch = {".cspell.json", "cspell.json", "cSpell.json"}, - url = "https://raw.githubusercontent.com/streetsidesoftware/cspell/cspell4/cspell.schema.json" - }, - { - name = ".csscomb.json", - description = "A JSON schema CSS Comb's configuration file", - fileMatch = {".csscomb.json"}, - url = "https://json.schemastore.org/csscomb.json" - }, - { - name = ".csslintrc", - description = "A JSON schema CSS Lint's configuration file", - fileMatch = {".csslintrc"}, - url = "https://json.schemastore.org/csslintrc.json" - }, - { - name = "Dart build configuration", - description = "Configuration for Dart's build system", - url = "https://json.schemastore.org/dart-build.json" - }, - { - name = "Dart test config", - description = "Configuration for Dart's test package", - fileMatch = {"dart_test.yaml"}, - url = "https://json.schemastore.org/dart-test.json" - }, - { - name = "datalogic-scan2deploy-android", - description = "Datalogic Scan2Deploy Android file", - fileMatch = {".dla.json"}, - url = "https://json.schemastore.org/datalogic-scan2deploy-android.json" - }, - { - name = "datalogic-scan2deploy-ce", - description = "Datalogic Scan2Deploy CE file", - fileMatch = {".dlc.json"}, - url = "https://json.schemastore.org/datalogic-scan2deploy-ce.json" - }, - { - name = "debugsettings.json", - description = "A JSON schema for the ASP.NET DebugSettings.json files", - fileMatch = {"debugsettings.json"}, - url = "https://json.schemastore.org/debugsettings.json" - }, - { - name = "dependabot.json", - description = "A JSON schema for the Dependabot config.yml files", - fileMatch = {".dependabot/config.yml"}, - url = "https://json.schemastore.org/dependabot.json" - }, - { - name = "dependabot-v2.json", - description = "A JSON schema for the GitHub Action's dependabot.yml files", - fileMatch = {".github/dependabot.yml"}, - url = "https://json.schemastore.org/dependabot-2.0.json" - }, - { - name = "Deployer Recipe", - description = "A JSON schema for Deployer yaml recipes", - fileMatch = {"deploy.yaml", "deploy.yml"}, - url = "https://raw.githubusercontent.com/deployphp/deployer/master/src/schema.json" - }, - { - name = "detekt.yml", - description = "Detekt Configuration File schema", - fileMatch = {"detekt.yml", "detekt.yaml"}, - url = "https://json.schemastore.org/detekt.json" - }, - { - name = "docfx.json", - description = "A JSON schema for DocFx configuration files", - fileMatch = {"docfx.json"}, - url = "https://json.schemastore.org/docfx.json" - }, - { - name = "Dolittle Artifacts", - description = "A JSON schema for a Dolittle bounded context's artifacts", - fileMatch = {".dolittle/artifacts.json"}, - url = "https://raw.githubusercontent.com/dolittle/DotNET.SDK/v5.0.0/Schemas/Artifacts.Configuration/artifacts.json" - }, - { - name = "Dolittle Bounded Context Configuration", - description = "A JSON schema for Dolittle application's bounded context configuration", - fileMatch = {"bounded-context.json"}, - url = "https://raw.githubusercontent.com/dolittle/Runtime/v5.1.1/Schemas/Applications.Configuration/bounded-context.json" - }, - { - name = "Dolittle Event Horizons Configuration", - description = "A JSON schema for a Dolittle bounded context's event horizon configurations", - fileMatch = {".dolittle/event-horizons.json"}, - url = "https://raw.githubusercontent.com/dolittle/Runtime/v5.1.1/Schemas/Events/event-horizons.json" - }, - { - name = "Dolittle Resources Configuration", - description = "A JSON schema for a Dolittle bounded context's resource configurations", - fileMatch = {".dolittle/resources.json"}, - url = "https://raw.githubusercontent.com/dolittle/DotNET.Fundamentals/v5.1.0/Schemas/ResourceTypes.Configuration/resources.json" - }, - { - name = "Dolittle Server Configuration", - description = "A JSON schema for a Dolittle bounded context's event horizon's interaction server configuration", - fileMatch = {".dolittle/server.json"}, - url = "https://raw.githubusercontent.com/dolittle/Runtime/v5.1.1/Schemas/Server/server.json" - }, - { - name = "Dolittle Tenants Configuration", - description = "A JSON schema for a Dolittle bounded context's tenant configuration", - fileMatch = {".dolittle/tenants.json"}, - url = "https://raw.githubusercontent.com/dolittle/Runtime/v5.1.1/Schemas/Tenancy/tenants.json" - }, - { - name = "Dolittle Tenant Map Configuration", - description = "A JSON schema for a Dolittle bounded context's tenant mapping configurations", - fileMatch = {".dolittle/tenant-map.json"}, - url = "https://raw.githubusercontent.com/dolittle/DotNET.Fundamentals/master/Schemas/Tenancy.Configuration/tenant-map.json" - }, - { - name = "Dolittle Topology", - description = "A JSON schema for a Dolittle bounded context's topology", - fileMatch = {".dolittle/topology.json"}, - url = "https://raw.githubusercontent.com/dolittle/DotNET.SDK/master/Schemas/Applications.Configuration/topology.json" - }, - { - name = "dotnetcli.host.json", - description = "JSON schema for .NET CLI template host files", - fileMatch = {"dotnetcli.host.json"}, - url = "https://json.schemastore.org/dotnetcli.host.json" - }, - { - name = "drone.json", - description = "Drone CI configuration file", - fileMatch = {".drone.yml"}, - url = "https://json.schemastore.org/drone.json" - }, - { - name = "Drush site aliases", - description = "JSON Schema for Drush 9 site aliases file", - fileMatch = {"sites/*.site.yml"}, - url = "https://json.schemastore.org/drush.site.yml.json" - }, - { - name = "dss-2.0.0.json", - description = "Digital Signature Service Core Protocols, Elements, and Bindings Version 2.0", - url = "https://json.schemastore.org/dss-2.0.0.json" - }, - { - name = "dvc.yaml", - description = "JSON Schema for dvc.yaml file", - fileMatch = {"dvc.yaml"}, - url = "https://raw.githubusercontent.com/iterative/dvcyaml-schema/master/schema.json" - }, - { - name = "Eclipse Che Devfile", - description = "JSON schema for Eclipse Che Devfiles", - url = "https://raw.githubusercontent.com/eclipse/che/7.19.2/wsmaster/che-core-api-workspace/src/main/resources/schema/1.0.0/devfile.json", - fileMatch = {"devfile.yaml", ".devfile.yaml"} - }, - { - name = "ecosystem.json", - description = "pm2 ecosystem config file", - fileMatch = {"ecosystem.json", "ecosystem.yml", "ecosystem.yaml"}, - url = "https://json.schemastore.org/pm2-ecosystem.json" - }, - { - name = ".esmrc.json", - description = "Configuration files for the esm module/package in Node.js", - fileMatch = {".esmrc", ".esmrc.json", ".esmrc.js", ".esmrc.cjs", ".esmrc.mjs"}, - url = "https://json.schemastore.org/esmrc.json" - }, - { - name = "Esquio", - description = "JSON schema for Esquio configuration files", - url = "https://json.schemastore.org/esquio.json" - }, - { - name = "epr-manifest.json", - description = "Entry Point Regulation manifest file", - fileMatch = {"epr-manifest.json"}, - url = "https://json.schemastore.org/epr-manifest.json" - }, - { - name = "electron-builder configuration file.", - description = "JSON schema for electron-build configuration file.", - fileMatch = {"electron-builder.json"}, - url = "https://json.schemastore.org/electron-builder.json" - }, - { - name = "evcc.yaml", - description = "JSON schema for evcc configuration file.", - fileMatch = {"evcc*.yaml"}, - url = "https://raw.githubusercontent.com/andig/evcc/master/schema.json" - }, - { - name = "Expo SDK", - description = "JSON schema for Expo SDK app manifest", - fileMatch = {"app.json"}, - url = "https://json.schemastore.org/expo-41.0.0.json", - versions = { - ["37.0.0"] = "https://json.schemastore.org/expo-37.0.0.json", - ["38.0.0"] = "https://json.schemastore.org/expo-38.0.0.json", - ["39.0.0"] = "https://json.schemastore.org/expo-39.0.0.json", - ["40.0.0"] = "https://json.schemastore.org/expo-40.0.0.json", - ["41.0.0"] = "https://json.schemastore.org/expo-41.0.0.json", - ["42.0.0"] = "https://json.schemastore.org/expo-42.0.0.json" - } - }, - { - name = ".eslintrc", - description = "JSON schema for ESLint configuration files", - fileMatch = {".eslintrc", ".eslintrc.json", ".eslintrc.yml", ".eslintrc.yaml"}, - url = "https://json.schemastore.org/eslintrc.json" - }, - { - name = "Facets - FSDL - Application", - description = "Facets Stack Definition Language for Applications", - fileMatch = {"**/application/instances/*.json"}, - url = "https://www.facets.cloud/assets/fsdl/application.schema.json" - }, - { - name = "fabric.mod.json", - description = "Metadata file used by the Fabric mod loader", - fileMatch = {"fabric.mod.json"}, - url = "https://json.schemastore.org/fabric.mod.json" - }, - { - name = "F-Droid Data metadata", - description = "Schema for F-Droid Data app metadata files", - fileMatch = {"metadata/*.yml"}, - url = "https://gitlab.com/fdroid/fdroiddata/-/raw/master/schemas/metadata.json" - }, - { - name = ".ffizer.yaml", - description = "JSON schema for ffizer template configuration files", - fileMatch = {".ffizer.yaml"}, - url = "https://ffizer.github.io/ffizer/ffizer.schema.json" - }, - { - name = "first-timers-bot", - description = "A bot that helps onboarding new open-source contributors.", - fileMatch = {".github/first-timers.yml"}, - url = "https://json.schemastore.org/first-timers.json" - }, - { - name = "Foundry VTT - Manifest", - description = "JSON schema for Foundry VTT system.json and module.json files.", - fileMatch = {"system.json", "module.json"}, - url = "https://gitlab.com/-/snippets/2062623/raw/master/foundryvtt_manifest_schema.json" - }, - { - name = "Foundry VTT - Template", - description = "JSON schema for Foundry VTT template.json files.", - fileMatch = {"template.json"}, - url = "https://gitlab.com/-/snippets/2062623/raw/master/foundryvtt_template_schema.json" - }, - { - name = "func.yaml", - description = "JSON schema for Knative Func Plugin func.yaml files", - fileMatch = {"func.yaml"}, - url = "https://raw.githubusercontent.com/knative-sandbox/kn-plugin-func/main/schema/func_yaml-schema.json" - }, - { - name = "function.json", - description = "JSON schema for Azure Functions function.json files", - fileMatch = {"function.json"}, - url = "https://json.schemastore.org/function.json" - }, - { - name = "GatewayCore API Gateway", - description = "JSON schema for Cloudtoid GatewayCore API Gateway and Reverse Proxy", - fileMatch = { - "gwcore.json", - "gwcore.yml", - "gwcore.yaml", - "gatewaycore.json", - "gatewaycore.yml", - "gatewaycore.yaml", - "*.gwcore.json", - "*.gwcore.yml", - "*.gwcore.yaml", - "*.gatewaycore.json", - "*.gatewaycore.yml", - "*.gatewaycore.yaml" - }, - url = "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json", - versions = { - latest = "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json", - ["2021-07"] = "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json" - } - }, - { - name = "Global Privacy Control", - description = "Configuration for GPC, so a site can convey its support for the Global Privacy Control.", - fileMatch = {"**/.well-known/gpc.json"}, - url = "https://json.schemastore.org/gpc.json" - }, - { - name = "geojson.json", - description = "GeoJSON format for representing geographic data.", - url = "https://json.schemastore.org/geojson.json" - }, - { - name = "GitVersion", - description = "The output from the GitVersion tool", - fileMatch = {"gitversion.json"}, - url = "https://json.schemastore.org/gitversion.json" - }, - { - name = "GitHub Action", - description = "YAML schema for GitHub Actions", - fileMatch = {"action.yml", "action.yaml"}, - url = "https://json.schemastore.org/github-action.json" - }, - { - name = "GitHub Funding", - description = "YAML schema for GitHub Funding", - fileMatch = {".github/FUNDING.yml", ".github/funding.yml", ".github/funding.yaml"}, - url = "https://json.schemastore.org/github-funding.json" - }, - { - name = "GitHub issue forms", - description = "YAML schema for GitHub issue forms", - fileMatch = {".github/ISSUE_TEMPLATE/**.yml", ".github/ISSUE_TEMPLATE/**.yaml"}, - url = "https://json.schemastore.org/github-issue-forms.json" - }, - { - name = "GitHub Workflow", - description = "YAML schema for GitHub Workflow", - fileMatch = {".github/workflows/**.yml", ".github/workflows/**.yaml"}, - url = "https://json.schemastore.org/github-workflow.json" - }, - { - name = "GitHub Workflow Template Properties", - description = "Json schema for properties json file for a GitHub Workflow template", - fileMatch = {".github/workflow-templates/**.properties.json"}, - url = "https://json.schemastore.org/github-workflow-template-properties.json" - }, - { - name = "gitlab-ci", - description = "JSON schema for configuring Gitlab CI", - fileMatch = {"*.gitlab-ci.yml"}, - url = "https://json.schemastore.org/gitlab-ci.json" - }, - { - name = "Gitpod Configuration", - description = "JSON schema for configuring Gitpod.io", - fileMatch = {".gitpod.yml"}, - url = "https://gitpod.io/schemas/gitpod-schema.json" - }, - { - name = "global.json", - description = "ASP.NET global configuration file", - fileMatch = {"global.json"}, - url = "https://json.schemastore.org/global.json" - }, - { - name = "golangci-lint Configuration", - description = "golangci-lint configuration file", - fileMatch = {".golangci.yml", ".golangci.yaml", ".golangci.toml", ".golangci.json"}, - url = "https://json.schemastore.org/golangci-lint.json" - }, - { - name = "Grafana 5.x Dashboard", - description = "JSON Schema for Grafana 5.x Dashboards", - url = "https://json.schemastore.org/grafana-dashboard-5.x.json" - }, - { - name = "GraphQL Mesh", - description = "JSON Schema for GraphQL Mesh config file", - url = "https://unpkg.com/@graphql-mesh/types/config-schema.json", - fileMatch = { - ".meshrc.yml", - ".meshrc.yaml", - ".meshrc.json", - ".meshrc.js", - ".graphql-mesh.yaml", - ".graphql-mesh.yml" - } - }, - { - name = "GraphQL Config", - description = "JSON Schema for GraphQL Config config file", - url = "https://unpkg.com/graphql-config/config-schema.json", - fileMatch = { - "graphql.config.json", - "graphql.config.js", - "graphql.config.yaml", - "graphql.config.yml", - ".graphqlrc", - ".graphqlrc.json", - ".graphqlrc.yaml", - ".graphqlrc.yml", - ".graphqlrc.js" - } - }, - { - name = "GraphQL Code Generator", - description = "JSON Schema for GraphQL Code Generator config file", - url = "https://www.graphql-code-generator.com/config.schema.json", - fileMatch = { - "codegen.yml", - "codegen.yaml", - "codegen.json", - "codegen.js", - ".codegen.yml", - ".codegen.yaml", - ".codegen.json", - ".codegen.js" - } - }, - { - name = "Grunt copy task", - description = "Grunt copy task configuration file", - fileMatch = {"copy.json"}, - url = "https://json.schemastore.org/grunt-copy-task.json" - }, - { - name = "Grunt clean task", - description = "Grunt clean task configuration file", - fileMatch = {"clean.json"}, - url = "https://json.schemastore.org/grunt-clean-task.json" - }, - { - name = "Grunt cssmin task", - description = "Grunt cssmin task configuration file", - fileMatch = {"cssmin.json"}, - url = "https://json.schemastore.org/grunt-cssmin-task.json" - }, - { - name = "Grunt JSHint task", - description = "Grunt JSHint task configuration file", - fileMatch = {"jshint.json"}, - url = "https://json.schemastore.org/grunt-jshint-task.json" - }, - { - name = "Grunt Watch task", - description = "Grunt Watch task configuration file", - fileMatch = {"watch.json"}, - url = "https://json.schemastore.org/grunt-watch-task.json" - }, - { - name = "Grunt base task", - description = "Schema for standard Grunt tasks", - fileMatch = {"grunt/*.json", "*-tasks.json"}, - url = "https://json.schemastore.org/grunt-task.json" - }, - { - name = "haxelib.json", - description = "Haxelib manifest", - fileMatch = {"haxelib.json"}, - url = "https://json.schemastore.org/haxelib.json" - }, - { - name = "Hayson", - description = "Project Haystack data", - fileMatch = {"*.hayson.json", "*.hayson.yaml", "*.hayson.yml"}, - url = "https://raw.githubusercontent.com/j2inn/hayson/master/hayson-json-schema.json" - }, - { - name = "host.json", - description = "JSON schema for Azure Functions host.json files", - fileMatch = {"host.json"}, - url = "https://json.schemastore.org/host.json" - }, - { - name = "host-meta.json", - description = "Schema for host-meta JDR files", - fileMatch = {"host-meta.json"}, - url = "https://json.schemastore.org/host-meta.json" - }, - { - name = ".htmlhintrc", - description = "HTML Hint configuration file", - fileMatch = {".htmlhintrc"}, - url = "https://json.schemastore.org/htmlhint.json" - }, - { - name = "hydra.yml", - description = "ORY Hydra configuration file", - fileMatch = {"hydra.json", "hydra.yml", "hydra.yaml", "hydra.toml"}, - url = "https://raw.githubusercontent.com/ory/hydra/v1.8.5/.schema/version.schema.json" - }, - { - name = "imageoptimizer.json", - description = "Schema for imageoptimizer.json files", - fileMatch = {"imageoptimizer.json"}, - url = "https://json.schemastore.org/imageoptimizer.json" - }, - { - name = "ioBroker JSON UI", - description = "Schema for ioBroker JSON-based admin user interfaces - config, custom and tabs", - fileMatch = {"jsonConfig.json", "jsonCustom.json", "jsonTab.json"}, - url = "https://raw.githubusercontent.com/ioBroker/adapter-react/master/schemas/jsonConfig.json" - }, - { - name = "ioBroker Package manifest", - description = "Schema for ioBroker adapters io-package file", - fileMatch = {"io-package.json"}, - url = "https://json.schemastore.org/io-package.json" - }, - { - name = "Jekyll configuration", - description = "Schema for Jekyll _config.yml", - fileMatch = {"_config.yml"}, - url = "https://json.schemastore.org/jekyll.json" - }, - { - name = "Jenkins X Pipelines", - description = "Jenkins X Pipeline YAML configuration files", - fileMatch = {"jenkins-x*.yml"}, - url = "https://jenkins-x.io/schemas/jx-schema.json" - }, - { - name = "Jenkins X Requirements", - description = "Jenkins X Requirements YAML configuration file", - fileMatch = {"jx-requirements.yml"}, - url = "https://jenkins-x.io/schemas/jx-requirements.json" - }, - { - name = "JFrog File Spec", - description = "JFrog File Spec schema definition", - fileMatch = {"**/filespecs/*.json", "*filespec*.json", "*.filespec"}, - url = "https://raw.githubusercontent.com/jfrog/jfrog-cli/master/schema/filespec-schema.json" - }, - { - name = "Jovo Language Models", - description = "JSON Schema for Jovo language Models (https://www.jovo.tech/docs/model)", - url = "https://json.schemastore.org/jovo-language-model.json" - }, - { - name = ".jsbeautifyrc", - description = "js-beautify configuration file", - fileMatch = {".jsbeautifyrc"}, - url = "https://json.schemastore.org/jsbeautifyrc.json" - }, - { - name = ".jsbeautifyrc-nested", - description = "js-beautify configuration file allowing nested `js`, `css`, and `html` attributes", - fileMatch = {".jsbeautifyrc"}, - url = "https://json.schemastore.org/jsbeautifyrc-nested.json" - }, - { - name = ".jscsrc", - description = "JSCS configuration file", - fileMatch = {".jscsrc", "jscsrc.json"}, - url = "https://json.schemastore.org/jscsrc.json" - }, - { - name = ".jshintrc", - description = "JSHint configuration file", - fileMatch = {".jshintrc"}, - url = "https://json.schemastore.org/jshintrc.json" - }, - { - name = ".jsinspectrc", - description = "JSInspect configuration file", - fileMatch = {".jsinspectrc"}, - url = "https://json.schemastore.org/jsinspectrc.json" - }, - { - name = "JSON-API", - description = "JSON API document", - fileMatch = {"*.schema.json"}, - url = "https://jsonapi.org/schema" - }, - { - name = "JSON Document Transform", - description = "JSON Document Transform", - url = "https://json.schemastore.org/jdt.json" - }, - { - name = "JSON Feed", - description = "JSON schema for the JSON Feed format", - fileMatch = {"feed.json"}, - url = "https://json.schemastore.org/feed.json", - versions = { - ["1"] = "https://json.schemastore.org/feed-1.json", - ["1.1"] = "https://json.schemastore.org/feed.json" - } - }, - { - name = "*.jsonld", - description = "JSON Linked Data files", - fileMatch = {"*.jsonld"}, - url = "https://json.schemastore.org/jsonld.json" - }, - { - name = "JSONPatch", - description = "JSONPatch files", - fileMatch = {"*.patch"}, - url = "https://json.schemastore.org/json-patch.json" - }, - { - name = "jsconfig.json", - description = "JavaScript project configuration file", - fileMatch = {"jsconfig.json"}, - url = "https://json.schemastore.org/jsconfig.json" - }, - { - name = "k3d.yaml", - description = "k3d configuration file", - fileMatch = {"k3d.yaml", "k3d.yml", ".k3d.yml", ".k3d.yaml", "*.k3d.yaml", "*.k3d.yml"}, - url = "https://raw.githubusercontent.com/rancher/k3d/main/pkg/config/v1alpha2/schema.json", - versions = { - v1alpha2 = "https://raw.githubusercontent.com/rancher/k3d/main/pkg/config/v1alpha2/schema.json" - } - }, - { - name = "keto.yml", - description = "ORY Keto configuration file", - fileMatch = {"keto.json", "keto.yml", "keto.yaml", "keto.toml"}, - url = "https://raw.githubusercontent.com/ory/keto/master/.schema/config.schema.json" - }, - { - name = "kustomization.yaml", - description = "Kubernetes native configuration management", - fileMatch = {"kustomization.yaml", "kustomization.yml"}, - url = "https://json.schemastore.org/kustomization.json" - }, - { - name = "label-commenter-config.yml", - description = "A JSON schema for the configuration of the Label Commenter GitHub Action", - fileMatch = {".github/label-commenter-config.yml"}, - url = "https://json.schemastore.org/label-commenter-config.json" - }, - { - name = "launchsettings.json", - description = "A JSON schema for the ASP.NET LaunchSettings.json files", - fileMatch = {"launchsettings.json"}, - url = "https://json.schemastore.org/launchsettings.json" - }, - { - name = "lerna.json", - description = "A JSON schema for lerna.json files", - fileMatch = {"lerna.json"}, - url = "https://json.schemastore.org/lerna.json" - }, - { - name = "lgtm.yml", - description = "A JSON schema for lgtm configuration files", - fileMatch = {"lgtm.yml", ".lgtm.yml"}, - url = "https://json.schemastore.org/lgtm.json" - }, - { - name = "libman.json", - description = "JSON schema for client-side library config files", - fileMatch = {"libman.json"}, - url = "https://json.schemastore.org/libman.json" - }, - { - name = "license-report-config.json", - description = "JSON schema for license report tool configuration file", - fileMatch = {"license-report-config.json"}, - url = "https://json.schemastore.org/license-report-config.json" - }, - { - name = "local.settings.json", - description = "JSON schema for Azure Functions local.settings.json files", - fileMatch = {"local.settings.json"}, - url = "https://json.schemastore.org/local.settings.json" - }, - { - name = "localazy.json", - description = "JSON schema for Localazy CLI configuration file. More info at https://localazy.com/docs/cli", - fileMatch = {"localazy.json"}, - url = "https://raw.githubusercontent.com/localazy/cli-schema/master/localazy.json" - }, - { - name = "lsdlschema.json", - description = "JSON schema for Linguistic Schema Definition Language files", - fileMatch = {"*.lsdl.yaml", "*.lsdl.json"}, - url = "https://json.schemastore.org/lsdlschema.json" - }, - { - name = "Mega-Linter configuration", - description = "JSON schema for Mega-Linter configuration file (for Mega-Linter users)", - fileMatch = {".mega-linter.yml", "*.mega-linter-config.yml"}, - url = "https://raw.githubusercontent.com/nvuillam/mega-linter/master/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json" - }, - { - name = "Mega-Linter descriptor", - description = "JSON schema for Mega-Linter descriptor files (for Mega-Linter contributors)", - fileMatch = {"*.megalinter-descriptor.yml"}, - url = "https://raw.githubusercontent.com/nvuillam/mega-linter/master/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json" - }, - { - name = "Microsoft Band Web Tile", - description = "Microsoft Band Web Tile manifest file", - url = "https://json.schemastore.org/band-manifest.json" - }, - { - name = "mimetypes.json", - description = "JSON Schema for mime type collections", - fileMatch = {"mimetypes.json"}, - url = "https://json.schemastore.org/mimetypes.json" - }, - { - name = "Minecraft Data Pack Advancement", - description = "Configuration file defining an advancement for a data pack for Minecraft.", - fileMatch = {"**/data/*/advancements/*.json"}, - url = "https://json.schemastore.org/minecraft-advancement.json" - }, - { - name = "Minecraft Data Pack Biome", - description = "Configuration file defining a biome for a data pack for Minecraft.", - fileMatch = {"**/data/*/worldgen/biome/*.json"}, - url = "https://json.schemastore.org/minecraft-biome.json" - }, - { - name = "Minecraft Data Pack Configured Carver", - description = "Configuration file defining a configured carver for a data pack for Minecraft.", - fileMatch = {"**/data/*/worldgen/configured_carver/*.json"}, - url = "https://json.schemastore.org/minecraft-configured-carver.json" - }, - { - name = "Minecraft Data Pack Dimension Type", - description = "Configuration file defining a dimension type for a data pack for Minecraft.", - fileMatch = {"**/data/*/dimension_type/*.json"}, - url = "https://json.schemastore.org/minecraft-dimension-type.json" - }, - { - name = "Minecraft Data Pack Dimension", - description = "Configuration file defining a dimension for a data pack for Minecraft.", - fileMatch = {"**/data/*/dimension/*.json"}, - url = "https://json.schemastore.org/minecraft-dimension.json" - }, - { - name = "Minecraft Data Pack Item Modifier", - description = "Configuration file defining an item modifier for a data pack for Minecraft.", - fileMatch = {"**/data/*/item_modifiers/*.json"}, - url = "https://json.schemastore.org/minecraft-item-modifier.json" - }, - { - name = "Minecraft Data Pack Loot Table", - description = "Configuration file defining a loot table for a data pack for Minecraft.", - fileMatch = {"**/data/*/loot_tables/**/*.json"}, - url = "https://json.schemastore.org/minecraft-loot-table.json" - }, - { - name = "Minecraft Data Pack Metadata", - description = "Configuration file defining the metadata of a data pack for Minecraft.", - fileMatch = {"**/pack.mcmeta"}, - url = "https://json.schemastore.org/minecraft-pack-mcmeta.json" - }, - { - name = "Minecraft Data Pack Predicate", - description = "Configuration file defining a predicate for a data pack for Minecraft.", - fileMatch = {"**/data/*/predicates/*.json"}, - url = "https://json.schemastore.org/minecraft-predicate.json" - }, - { - name = "Minecraft Data Pack Recipe", - description = "Configuration file defining a recipe for a data pack for Minecraft.", - fileMatch = {"**/data/*/recipes/*.json"}, - url = "https://json.schemastore.org/minecraft-recipe.json" - }, - { - name = "Minecraft Data Pack Template Pool", - description = "Configuration file defining a template pool for a data pack for Minecraft.", - fileMatch = {"**/data/*/worldgen/template_pool/*.json"}, - url = "https://json.schemastore.org/minecraft-template-pool.json" - }, - { - name = ".mocharc", - description = "JSON schema for MochaJS configuration files", - fileMatch = {".mocharc.json", ".mocharc.jsonc", ".mocharc.yml", ".mocharc.yaml"}, - url = "https://json.schemastore.org/mocharc.json" - }, - { - name = ".modernizrrc", - description = "Webpack modernizr-loader configuration file", - fileMatch = {".modernizrrc"}, - url = "https://json.schemastore.org/modernizrrc.json" - }, - { - name = "mycode.json", - description = "JSON schema for mycode.js files", - fileMatch = {"mycode.json"}, - url = "https://json.schemastore.org/mycode.json" - }, - { - name = "Netlify config schema", - description = "This schema describes the YAML config that Netlify uses", - fileMatch = {"admin/config*.yml"}, - url = "https://json.schemastore.org/netlify.json" - }, - { - name = "Nightwatch.js", - description = "nightwatch.js schema", - fileMatch = {"nightwatch.json"}, - url = "https://json.schemastore.org/nightwatch.json" - }, - { - name = "ninjs (News in JSON)", - description = "A JSON Schema for ninjs by the IPTC. News and publishing information. See https://iptc.org/standards/ninjs/", - url = "https://json.schemastore.org/ninjs-1.3.json", - versions = { - ["1.3"] = "https://json.schemastore.org/ninjs-1.3.json", - ["1.2"] = "https://json.schemastore.org/ninjs-1.2.json", - ["1.1"] = "https://json.schemastore.org/ninjs-1.1.json", - ["1.0"] = "https://json.schemastore.org/ninjs-1.0.json" - } - }, - { - name = "nest-cli", - description = "A progressive Node.js framework for building efficient and scalable server-side applications 🚀.", - url = "https://json.schemastore.org/nest-cli.json", - fileMatch = {".nestcli.json", ".nest-cli.json", "nest-cli.json", "nest.json"} - }, - { - name = "nlu.json", - description = "Schema for NPM-Link-Up", - fileMatch = {"nlu.json", ".nlu.json"}, - url = "https://raw.githubusercontent.com/oresoftware/npm-link-up/master/assets/nlu.schema.json" - }, - { - name = ".nodehawkrc", - description = "JSON schema for .nodehawkrc configuration files.", - url = "https://json.schemastore.org/nodehawkrc.json", - fileMatch = {".nodehawkrc"} - }, - { - name = "nodemon.json", - description = "JSON schema for nodemon.json configuration files.", - url = "https://json.schemastore.org/nodemon.json", - fileMatch = {"nodemon.json"} - }, - { - name = ".npmpackagejsonlintrc", - description = "Configuration file for npm-package-json-lint", - fileMatch = {".npmpackagejsonlintrc", "npmpackagejsonlintrc.json", ".npmpackagejsonlintrc.json"}, - url = "https://json.schemastore.org/npmpackagejsonlintrc.json" - }, - { - name = "nuget-project.json", - description = "JSON schema for NuGet project.json files.", - url = "https://json.schemastore.org/nuget-project.json", - versions = { - ["3.3.0"] = "https://json.schemastore.org/nuget-project-3.3.0.json" - } - }, - { - name = "nswag.json", - description = "JSON schema for nswag configuration", - url = "https://json.schemastore.org/nswag.json", - fileMatch = {"nswag.json"} - }, - { - name = "oathkeeper.yml", - description = "ORY Oathkeeper configuration file", - fileMatch = {"oathkeeper.json", "oathkeeper.yml", "oathkeeper.yaml", "oathkeeper.toml"}, - url = "https://raw.githubusercontent.com/ory/oathkeeper/master/.schemas/config.schema.json" - }, - { - name = "ocelot.json", - description = "JSON schema for the Ocelot Api Gateway.", - fileMatch = {"ocelot.json"}, - url = "https://json.schemastore.org/ocelot.json" - }, - { - name = "omnisharp.json", - description = "Omnisharp Configuration file", - fileMatch = {"omnisharp.json"}, - url = "https://json.schemastore.org/omnisharp.json" - }, - { - name = "openapi.json", - description = "A JSON schema for Open API documentation files", - fileMatch = {"openapi.json", "openapi.yml", "openapi.yaml"}, - url = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", - versions = { - ["3.0"] = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json", - ["3.1"] = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json" - } - }, - { - name = "openfin.json", - description = "OpenFin application configuration file", - url = "https://json.schemastore.org/openfin.json" - }, - { - name = "Outblocks project configuration", - description = "JSON schema for Outblocks project configuration files", - fileMatch = {"project.outblocks.yaml", "project.outblocks.yml"}, - url = "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-project.json" - }, - { - name = "Outblocks App configuration", - description = "JSON schema for Outblocks App configuration files", - fileMatch = {"outblocks.yaml", "outblocks.yml"}, - url = "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-app.json" - }, - { - name = "Outblocks database table", - description = "JSON schema for Outblocks database table files", - fileMatch = {"database/**/*.outblocks.yaml", "database/**/*.outblocks.yml"}, - url = "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-table.json" - }, - { - name = "kratos.yml", - description = "ORY Kratos configuration file", - fileMatch = {"kratos.json", "kratos.yml", "kratos.yaml"}, - url = "https://raw.githubusercontent.com/ory/kratos/master/.schema/version.schema.json" - }, - { - name = "package.json", - description = "NPM configuration file", - fileMatch = {"package.json"}, - url = "https://json.schemastore.org/package.json" - }, - { - name = "package.manifest", - description = "Umbraco package configuration file", - fileMatch = {"package.manifest"}, - url = "https://json.schemastore.org/package.manifest.json", - versions = { - ["8.0.0"] = "https://json.schemastore.org/package.manifest-8.0.0.json", - ["7.0.0"] = "https://json.schemastore.org/package.manifest-7.0.0.json" - } - }, - { - name = "Packer", - description = "Packer template JSON configuration", - fileMatch = {"packer.json"}, - url = "https://json.schemastore.org/packer.json" - }, - { - name = "pgap_yaml_input_reader", - description = "NCBI Prokaryotic Genome Annotation Pipeline (PGAP) input metadata (submol) JSON/YAML configuration file", - fileMatch = {"submol*.json", "submol*.yml", "submol*.yaml"}, - url = "https://json.schemastore.org/pgap_yaml_input_reader.json" - }, - { - name = "pattern.json", - description = "Patternplate pattern manifest file", - fileMatch = {"pattern.json"}, - url = "https://json.schemastore.org/pattern.json" - }, - { - name = ".pmbot.yml", - description = "Pmbot configuration file", - fileMatch = {".pmbot.yml"}, - url = "https://raw.githubusercontent.com/pmbot-io/config/master/pmbot.yml.schema.json" - }, - { - name = "PocketMine plugin.yml", - description = "PocketMine plugin manifest file", - fileMatch = {"plugin.yml"}, - url = "https://json.schemastore.org/pocketmine-plugin.json" - }, - { - name = "portman.json", - description = "JSON schema for Portman's configuration file", - fileMatch = {"portman-config.json", "portman.json"}, - url = "https://raw.githubusercontent.com/apideck-libraries/portman/main/src/utils/portman-config-schema.json" - }, - { - name = "PostCSS .prettierrc", - description = "PostCSS configuration file", - fileMatch = {".postcssrc", ".postcssrc.json", ".postcssrc.yaml", ".postcssrc.yml"}, - url = "https://json.schemastore.org/postcssrc.json" - }, - { - name = ".pre-commit-config.yml", - description = "pre-commit configuration file", - fileMatch = {".pre-commit-config.yml", ".pre-commit-config.yaml"}, - url = "https://json.schemastore.org/pre-commit-config.json" - }, - { - name = ".phraseapp.yml", - description = "PhraseApp configuration file", - fileMatch = {".phraseapp.yml"}, - url = "https://json.schemastore.org/phraseapp.json" - }, - { - name = "prettierrc.json", - description = ".prettierrc configuration file", - fileMatch = {".prettierrc", ".prettierrc.json", ".prettierrc.yml", ".prettierrc.yaml"}, - url = "https://json.schemastore.org/prettierrc.json", - versions = { - ["1.8.2"] = "https://json.schemastore.org/prettierrc-1.8.2.json" - } - }, - { - name = "prisma.yml", - description = "prisma.yml service definition file", - fileMatch = {"prisma.yml"}, - url = "https://json.schemastore.org/prisma.json" - }, - { - name = "project.json", - description = "ASP.NET vNext project configuration file", - fileMatch = {"project.json"}, - url = "https://json.schemastore.org/project.json", - versions = { - ["1.0.0-beta3"] = "https://json.schemastore.org/project-1.0.0-beta3.json", - ["1.0.0-beta4"] = "https://json.schemastore.org/project-1.0.0-beta4.json", - ["1.0.0-beta5"] = "https://json.schemastore.org/project-1.0.0-beta5.json", - ["1.0.0-beta6"] = "https://json.schemastore.org/project-1.0.0-beta6.json", - ["1.0.0-beta8"] = "https://json.schemastore.org/project-1.0.0-beta8.json", - ["1.0.0-rc1"] = "https://json.schemastore.org/project-1.0.0-rc1.json", - ["1.0.0-rc1-update1"] = "https://json.schemastore.org/project-1.0.0-rc1.json", - ["1.0.0-rc2"] = "https://json.schemastore.org/project-1.0.0-rc2.json" - } - }, - { - name = "project-1.0.0-beta3.json", - description = "ASP.NET vNext project configuration file", - url = "https://json.schemastore.org/project-1.0.0-beta3.json" - }, - { - name = "project-1.0.0-beta4.json", - description = "ASP.NET vNext project configuration file", - url = "https://json.schemastore.org/project-1.0.0-beta4.json" - }, - { - name = "project-1.0.0-beta5.json", - description = "ASP.NET vNext project configuration file", - url = "https://json.schemastore.org/project-1.0.0-beta5.json" - }, - { - name = "project-1.0.0-beta6.json", - description = "ASP.NET vNext project configuration file", - url = "https://json.schemastore.org/project-1.0.0-beta6.json" - }, - { - name = "project-1.0.0-beta8.json", - description = "ASP.NET vNext project configuration file", - url = "https://json.schemastore.org/project-1.0.0-beta8.json" - }, - { - name = "project-1.0.0-rc1.json", - description = "ASP.NET vNext project configuration file", - url = "https://json.schemastore.org/project-1.0.0-rc1.json" - }, - { - name = "project-1.0.0-rc2.json", - description = ".NET Core project configuration file", - url = "https://json.schemastore.org/project-1.0.0-rc2.json" - }, - { - name = "prometheus.json", - description = "Prometheus configuration file", - fileMatch = {"prometheus.yml"}, - url = "https://json.schemastore.org/prometheus.json" - }, - { - name = "prometheus.rules.json", - description = "Prometheus rules file", - fileMatch = {"*.rules"}, - url = "https://json.schemastore.org/prometheus.rules.json" - }, - { - name = "proxies.json", - description = "JSON schema for Azure Function Proxies proxies.json files", - fileMatch = {"proxies.json"}, - url = "https://json.schemastore.org/proxies.json" - }, - { - name = "publiccode.yml", - description = "JSON schema for publiccode.yml", - fileMatch = {"publiccode.yml"}, - url = "https://json.schemastore.org/publiccode.json" - }, - { - name = "pubspec.yaml", - description = "Schema for pubspecs, the format used by Dart's dependency manager", - fileMatch = {"pubspec.yaml"}, - url = "https://json.schemastore.org/pubspec.json" - }, - { - name = "Pull Request Labeler", - description = "A GitHub Action for automatically labelling pull requests", - fileMatch = {".github/labeler.yml"}, - url = "https://json.schemastore.org/pull-request-labeler.json" - }, - { - name = "pyrseas-0.8.json", - description = "Pyrseas database schema versioning for Postgres databases, v0.8", - fileMatch = {"pyrseas-0.8.json"}, - url = "https://json.schemastore.org/pyrseas-0.8.json" - }, - { - name = "Read the Docs", - description = "Read the Docs configuration file", - fileMatch = {"readthedocs.yml", "readthedocs.yaml", ".readthedocs.yml", ".readthedocs.yaml"}, - url = "https://raw.githubusercontent.com/readthedocs/readthedocs.org/master/readthedocs/rtd_tests/fixtures/spec/v2/schema.json" - }, - { - name = "Red-DiscordBot Сog", - description = "Red-DiscordBot Сog metadata file", - fileMatch = {"info.json"}, - url = "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/red_cog.schema.json" - }, - { - name = "Red-DiscordBot Сog Repo", - description = "Red-DiscordBot Сog Repo metadata file", - fileMatch = {"info.json"}, - url = "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/red_cog_repo.schema.json" - }, - { - name = ".remarkrc", - description = "A remark configuration file", - fileMatch = {".remarkrc", ".remarkrc.json", ".remarkrc.yaml", ".remarkrc.yml"}, - url = "https://json.schemastore.org/remarkrc.json" - }, - { - name = "*.resjson", - description = "Windows App localization file", - fileMatch = {"*.resjson"}, - url = "https://json.schemastore.org/resjson.json" - }, - { - name = "JSON Resume", - description = "A JSON schema to describe a résumé.", - fileMatch = { - "**/resume.json", - "**/*.resume.json", - "**/resume.yaml", - "**/*.resume.yaml", - "**/resume.yml", - "**/*.resume.yml" - }, - url = "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", - versions = { - ["1.0.0"] = "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json" - } - }, - { - name = "Renovate", - description = "Renovate config file (https://github.com/renovatebot/renovate)", - fileMatch = { - "renovate.json", - "renovate.json5", - ".github/renovate.json", - ".github/renovate.json5", - ".renovaterc", - ".renovaterc.json" - }, - url = "https://docs.renovatebot.com/renovate-schema.json" - }, - { - name = "RoadRunner", - description = "Spiral Roadrunner config file schema", - url = "https://raw.githubusercontent.com/spiral/roadrunner-binary/master/schemas/config/2.0.schema.json", - fileMatch = {".rr*.yml", ".rr*.yaml"}, - versions = { - ["1.0"] = "https://raw.githubusercontent.com/spiral/roadrunner-binary/master/schemas/config/1.0.schema.json", - ["2.0"] = "https://raw.githubusercontent.com/spiral/roadrunner-binary/master/schemas/config/2.0.schema.json" - } - }, - { - name = "sarif-1.0.0.json", - description = "Static Analysis Results Interchange Format (SARIF) version 1", - url = "https://json.schemastore.org/sarif-1.0.0.json" - }, - { - name = "sarif-2.0.0.json", - description = "Static Analysis Results Interchange Format (SARIF) version 2", - url = "https://json.schemastore.org/sarif-2.0.0.json" - }, - { - name = "sarif-2.1.0-rtm.2", - description = "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.2", - url = "https://json.schemastore.org/sarif-2.1.0-rtm.2.json" - }, - { - name = "sarif-external-property-file-2.1.0-rtm.2", - description = "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.2", - url = "https://json.schemastore.org/sarif-external-property-file-2.1.0-rtm.2.json" - }, - { - name = "sarif-2.1.0-rtm.3", - description = "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.3", - url = "https://json.schemastore.org/sarif-2.1.0-rtm.3.json" - }, - { - name = "sarif-external-property-file-2.1.0-rtm.3", - description = "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.3", - url = "https://json.schemastore.org/sarif-external-property-file-2.1.0-rtm.3.json" - }, - { - name = "sarif-2.1.0-rtm.4", - description = "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.4", - url = "https://json.schemastore.org/sarif-2.1.0-rtm.4.json" - }, - { - name = "sarif-external-property-file-2.1.0-rtm.4", - description = "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.4", - url = "https://json.schemastore.org/sarif-external-property-file-2.1.0-rtm.4.json" - }, - { - name = "sarif-2.1.0-rtm.5", - description = "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.5", - url = "https://json.schemastore.org/sarif-2.1.0-rtm.5.json" - }, - { - name = "sarif-external-property-file-2.1.0-rtm.5", - description = "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.5", - url = "https://json.schemastore.org/sarif-external-property-file-2.1.0-rtm.5.json" - }, - { - name = "sarif-2.1.0", - description = "Static Analysis Results Format (SARIF), Version 2.1.0", - url = "https://json.schemastore.org/sarif-2.1.0.json" - }, - { - name = "sarif-external-property-file-2.1.0", - description = "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0", - url = "https://json.schemastore.org/sarif-external-property-file-2.1.0.json" - }, - { - name = "Schema Catalog", - description = "JSON Schema catalog files compatible with SchemaStore.org", - url = "https://json.schemastore.org/schema-catalog.json" - }, - { - name = "schema.org - Action", - description = "JSON Schema for Action as defined by schema.org", - url = "https://json.schemastore.org/schema-org-action.json" - }, - { - name = "schema.org - ContactPoint", - description = "JSON Schema for ContactPoint as defined by schema.org", - url = "https://json.schemastore.org/schema-org-contact-point.json" - }, - { - name = "schema.org - Place", - description = "JSON Schema for Place as defined by schema.org", - url = "https://json.schemastore.org/schema-org-place.json" - }, - { - name = "schema.org - Thing", - description = "JSON Schema for Thing as defined by schema.org", - url = "https://json.schemastore.org/schema-org-thing.json" - }, - { - name = "Scoop manifest", - description = "Scoop bucket app manifest", - fileMatch = {"bucket/**.json"}, - url = "https://raw.githubusercontent.com/lukesampson/scoop/master/schema.json" - }, - { - name = "Semgrep Rule", - description = "Semgrep code scanning patterns and rules", - fileMatch = {".semgrep/**.yaml", ".semgrep/**.yml", ".semgrep.yaml", ".semgrep.yml"}, - url = "https://json.schemastore.org/semgrep.json" - }, - { - name = "settings.job", - description = "Azure Webjob settings file", - fileMatch = {"settings.job"}, - url = "https://json.schemastore.org/settings.job.json" - }, - { - name = "sfdx-hardis configuration", - description = "Configuration file for sfdx-hardis Salesforce DX plugin", - fileMatch = { - ".sfdx-hardis.yml", - ".sfdx-hardis.yaml", - "**/branches/.sfdx-hardis.*.yml", - "**/branches/.sfdx-hardis.*.yaml" - }, - url = "https://raw.githubusercontent.com/hardisgroupcom/sfdx-hardis/main/config/sfdx-hardis.jsonschema.json" - }, - { - name = "skyuxconfig.json", - description = "SKY UX CLI configuration file", - fileMatch = {"skyuxconfig.json", "skyuxconfig.*.json"}, - url = "https://raw.githubusercontent.com/blackbaud/skyux-config/4.0.4/skyuxconfig-schema.json" - }, - { - name = "snapcraft", - description = "snapcraft project (https://snapcraft.io)", - fileMatch = {".snapcraft.yaml", "snapcraft.yaml"}, - url = "https://raw.githubusercontent.com/snapcore/snapcraft/4.3/schema/snapcraft.json" - }, - { - name = "Solidarity", - description = "CLI config for enforcing environment settings", - fileMatch = {".solidarity", ".solidarity.json"}, - url = "https://json.schemastore.org/solidaritySchema.json" - }, - { - name = "Source Maps v3", - description = "Source Map files version 3", - fileMatch = {"*.map"}, - url = "https://json.schemastore.org/sourcemap-v3.json" - }, - { - name = "Sponge Mixin configuration", - description = "Configuration file for SpongePowered's Mixin library", - fileMatch = {"*.mixins.json"}, - url = "https://json.schemastore.org/sponge-mixins.json" - }, - { - name = ".sprite files", - description = "Schema for image sprite generation files", - fileMatch = {"*.sprite"}, - url = "https://json.schemastore.org/sprite.json" - }, - { - name = "Azure Static Web Apps configuration file", - description = "Documentation: https://aka.ms/swa/config-schema", - fileMatch = {"staticwebapp.config.json"}, - url = "https://json.schemastore.org/staticwebapp.config.json" - }, - { - name = "StackHead CLI config", - description = "Configuration file for StackHead CLI. See https://stackhead.io.", - fileMatch = {".stackhead-cli.yml"}, - url = "https://schema.stackhead.io/stackhead-cli/tag/v1/-/cli-config.schema.json" - }, - { - name = "StackHead module configuration", - description = "Configuration file for StackHead modules. See https://stackhead.io.", - fileMatch = {"stackhead-module.yml"}, - url = "https://schema.stackhead.io/stackhead/tag/v1/-/module-config.schema.json" - }, - { - name = "StackHead project definition", - description = "Project definition file for deploying projects with StackHead. See https://stackhead.io.", - fileMatch = {"*.stackhead.yml", "*.stackhead.yaml"}, - url = "https://schema.stackhead.io/stackhead/tag/v1/-/project-definition.schema.json" - }, - { - name = "Stale", - description = "Configuration file for Stale for closing abandoned issues and pull requests. See https://probot.github.io/apps/stale/.", - fileMatch = {".github/stale.yml"}, - url = "https://json.schemastore.org/stale.json" - }, - { - name = "Stryker Mutator", - description = "Configuration file for Stryker Mutator, the mutation testing framework for JavaScript and friends. See https://stryker-mutator.io.", - fileMatch = {"stryker.conf.json", "stryker-*.conf.json"}, - url = "https://raw.githubusercontent.com/stryker-mutator/stryker/v4.0.0/packages/api/schema/stryker-core.json" - }, - { - name = "StyleCop Analyzers Configuration", - description = "Configuration file for StyleCop Analyzers", - fileMatch = {"stylecop.json"}, - url = "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/1.1.118/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json" - }, - { - name = ".stylelintrc", - description = "Configuration file for stylelint", - fileMatch = {".stylelintrc", ".stylelintrc.yml", ".stylelintrc.yaml", ".stylelintrc.json"}, - url = "https://json.schemastore.org/stylelintrc.json" - }, - { - name = "Swagger API 2.0", - description = "Swagger API 2.0 schema", - fileMatch = {"swagger.json"}, - url = "https://json.schemastore.org/swagger-2.0.json" - }, - { - name = "Taurus", - description = "Taurus bzt cli framework config", - fileMatch = {"bzt.yml", "bzt.yaml", "taurus.yml", "taurus.yaml"}, - url = "https://json.schemastore.org/taurus.json" - }, - { - name = "template.json", - description = "JSON schema .NET template files", - fileMatch = {".template.config/template.json"}, - url = "https://json.schemastore.org/template.json" - }, - { - name = "templatsources.json", - description = "SideWaffle template source schema", - fileMatch = {"templatesources.json"}, - url = "https://json.schemastore.org/templatesources.json" - }, - { - name = "tmLanguage", - description = "Language grammar description files in Textmate and compatible editors", - fileMatch = {"*.tmLanguage.json"}, - url = "https://raw.githubusercontent.com/Septh/tmlanguage/master/tmLanguage.schema.json" - }, - { - name = "TestEnvironment.json", - description = "Schema for Visual Studio's test environment config", - fileMatch = {"testEnvironments.json"}, - url = "https://json.schemastore.org/testenvironments.json" - }, - { - name = ".travis.yml", - description = "Travis CI configuration file", - fileMatch = {".travis.yml"}, - url = "https://json.schemastore.org/travis.json" - }, - { - name = "Traefik v2", - description = "Traefik v2 YAML configuration file", - fileMatch = {"traefik.yml", "traefik.yaml"}, - url = "https://json.schemastore.org/traefik-v2.json" - }, - { - name = "Traefik v2 File Provider", - description = "Traefik v2 Dynamic Configuration File Provider", - url = "https://json.schemastore.org/traefik-v2-file-provider.json" - }, - { - name = "tsconfig.json", - description = "TypeScript compiler configuration file", - fileMatch = {"tsconfig.json"}, - url = "https://json.schemastore.org/tsconfig.json" - }, - { - name = "tsd.json", - description = "JSON schema for DefinitelyTyped description manager (TSD)", - fileMatch = {"tsd.json"}, - url = "https://json.schemastore.org/tsd.json" - }, - { - name = "tsdrc.json", - description = "TypeScript Definition manager (tsd) global settings file", - fileMatch = {".tsdrc"}, - url = "https://json.schemastore.org/tsdrc.json" - }, - { - name = "ts-force-config.json", - description = "Generated Typescript classes for Salesforce", - fileMatch = {"ts-force-config.json"}, - url = "https://json.schemastore.org/ts-force-config.json" - }, - { - name = "tslint.json", - description = "TypeScript Lint configuration file", - fileMatch = {"tslint.json", "tslint.yaml", "tslint.yml"}, - url = "https://json.schemastore.org/tslint.json" - }, - { - name = "typewiz.json", - description = "Typewiz configuration file", - fileMatch = {"typewiz.json"}, - url = "https://json.schemastore.org/typewiz.json" - }, - { - name = "typings.json", - description = "Typings TypeScript definitions manager definition file", - fileMatch = {"typings.json"}, - url = "https://json.schemastore.org/typings.json" - }, - { - name = "typingsrc.json", - description = "Typings TypeScript definitions manager configuration file", - fileMatch = {".typingsrc"}, - url = "https://json.schemastore.org/typingsrc.json" - }, - { - name = "up.json", - description = "Up configuration file", - fileMatch = {"up.json"}, - url = "https://json.schemastore.org/up.json" - }, - { - name = "UI5 Manifest", - description = "UI5 Manifest (manifest.json)", - fileMatch = {"webapp/manifest.json", "src/main/webapp/manifest.json"}, - url = "https://raw.githubusercontent.com/SAP/ui5-manifest/master/schema.json" - }, - { - name = "ui5.yaml", - description = "UI5 Tooling Configuration File (ui5.yaml)", - fileMatch = {"ui5.yaml", "*-ui5.yaml", "*.ui5.yaml", "ui5-deploy.yaml", "ui5-dist.yaml", "ui5-local.yaml"}, - url = "https://sap.github.io/ui5-tooling/schema/ui5.yaml.json" - }, - { - name = "vega.json", - description = "Vega visualization specification file", - fileMatch = {"*.vg", "*.vg.json"}, - url = "https://json.schemastore.org/vega.json" - }, - { - name = "vega-lite.json", - description = "Vega-Lite visualization specification file", - fileMatch = {"*.vl", "*.vl.json"}, - url = "https://json.schemastore.org/vega-lite.json" - }, - { - name = "Vela Pipeline Configuration", - description = "Vela Pipeline Configuration File", - fileMatch = {".vela.yml", ".vela.yaml"}, - url = "https://github.com/go-vela/types/releases/latest/download/schema.json" - }, - { - name = "version.json", - description = "A project version descriptor file used by Nerdbank.GitVersioning", - fileMatch = {"version.json"}, - url = "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/v3.3.37/src/NerdBank.GitVersioning/version.schema.json" - }, - { - name = "vim-addon-info", - description = "JSON schema for vim plugin addon-info.json metadata files", - fileMatch = {"*vim*/addon-info.json"}, - url = "https://json.schemastore.org/vim-addon-info.json" - }, - { - name = "vsls.json", - description = "Visual Studio Live Share configuration file", - fileMatch = {".vsls.json"}, - url = "https://json.schemastore.org/vsls.json" - }, - { - name = "vs-2017.3.host.json", - description = "JSON schema for Visual Studio template host file", - fileMatch = {"vs-2017.3.host.json"}, - url = "https://json.schemastore.org/vs-2017.3.host.json" - }, - { - name = "vs-nesting.json", - description = "JSON schema for Visual Studio's file nesting feature", - fileMatch = {"*.filenesting.json", ".filenesting.json"}, - url = "https://json.schemastore.org/vs-nesting.json" - }, - { - name = ".vsconfig", - description = "JSON schema for Visual Studio component configuration files", - fileMatch = {"*.vsconfig"}, - url = "https://json.schemastore.org/vsconfig.json" - }, - { - name = ".vsext", - description = "JSON schema for Visual Studio extension pack manifests", - fileMatch = {"*.vsext"}, - url = "https://json.schemastore.org/vsext.json" - }, - { - name = "VSIX CLI publishing", - description = "JSON schema for Visual Studio extension publishing", - fileMatch = {"vs-publish.json"}, - url = "https://json.schemastore.org/vsix-publish.json" - }, - { - name = "vss-extension.json", - description = "JSON Schema for Azure DevOps Extensions", - fileMatch = {"vss-extension.json"}, - url = "https://json.schemastore.org/vss-extension.json" - }, - { - name = "WebExtensions", - description = "JSON schema for WebExtension manifest files", - fileMatch = {"manifest.json"}, - url = "https://json.schemastore.org/webextension.json" - }, - { - name = "Web App Manifest", - description = "Web Application manifest file", - fileMatch = {"manifest.json", "*.webmanifest"}, - url = "https://json.schemastore.org/web-manifest-combined.json" - }, - { - name = "webjobs-list.json", - description = "Azure Webjob list file", - fileMatch = {"webjobs-list.json"}, - url = "https://json.schemastore.org/webjobs-list.json" - }, - { - name = "webjobpublishsettings.json", - description = "Azure Webjobs publish settings file", - fileMatch = {"webjobpublishsettings.json"}, - url = "https://json.schemastore.org/webjob-publish-settings.json" - }, - { - name = "Web types", - description = "JSON standard for web component libraries metadata", - fileMatch = {"web-types.json", "*.web-types.json"}, - url = "https://json.schemastore.org/web-types.json" - }, - { - name = "JSON-stat 2.0", - description = "JSON-stat 2.0 Schema", - url = "https://json-stat.org/format/schema/2.0/" - }, - { - name = "KSP-AVC", - description = "The .version file format for KSP-AVC", - fileMatch = {"*.version"}, - url = "https://raw.githubusercontent.com/linuxgurugamer/KSPAddonVersionChecker/1.4.1.5/KSP-AVC.schema.json" - }, - { - name = "KSP-CKAN", - description = "Metadata spec for KSP-CKAN", - fileMatch = {"*.ckan"}, - url = "https://raw.githubusercontent.com/KSP-CKAN/CKAN/v1.28.0/CKAN.schema" - }, - { - name = "JSON Schema Draft 4", - description = "Meta-validation schema for JSON Schema Draft 4", - url = "https://json-schema.org/draft-04/schema" - }, - { - name = "JSON Schema Draft 7", - description = "Meta-validation schema for JSON Schema Draft 7", - url = "https://json-schema.org/draft-07/schema" - }, - { - name = "JSON Schema Draft 8", - description = "Meta-validation schema for JSON Schema Draft 8", - url = "https://json-schema.org/draft/2019-09/schema" - }, - { - name = "xunit.runner.json", - description = "xUnit.net runner configuration file", - fileMatch = {"xunit.runner.json"}, - url = "https://json.schemastore.org/xunit.runner.schema.json" - }, - { - name = "servicehub.service.json", - description = "Microsoft ServiceHub Service", - fileMatch = {"*.servicehub.service.json"}, - url = "https://json.schemastore.org/servicehub.service.schema.json" - }, - { - name = "servicehub.config.json", - description = "Microsoft ServiceHub Configuration", - fileMatch = {"servicehub.config.json"}, - url = "https://json.schemastore.org/servicehub.config.schema.json" - }, - { - name = ".cryproj engine-5.2", - description = "A JSON schema for CRYENGINE projects (.cryproj files)", - fileMatch = {"*.cryproj"}, - url = "https://json.schemastore.org/cryproj.52.schema.json" - }, - { - name = ".cryproj engine-5.3", - description = "A JSON schema for CRYENGINE projects (.cryproj files)", - fileMatch = {"*.cryproj"}, - url = "https://json.schemastore.org/cryproj.53.schema.json" - }, - { - name = ".cryproj engine-5.4", - description = "A JSON schema for CRYENGINE projects (.cryproj files)", - fileMatch = {"*.cryproj"}, - url = "https://json.schemastore.org/cryproj.54.schema.json" - }, - { - name = ".cryproj engine-5.5", - description = "A JSON schema for CRYENGINE projects (.cryproj files)", - fileMatch = {"*.cryproj"}, - url = "https://json.schemastore.org/cryproj.55.schema.json" - }, - { - name = ".cryproj engine-dev", - description = "A JSON schema for CRYENGINE projects (.cryproj files)", - fileMatch = {"*.cryproj"}, - url = "https://json.schemastore.org/cryproj.dev.schema.json" - }, - { - name = ".cryproj (generic)", - description = "A JSON schema for CRYENGINE projects (.cryproj files)", - fileMatch = {"*.cryproj"}, - url = "https://json.schemastore.org/cryproj.json" - }, - { - name = "typedoc.json", - description = "A JSON schema for the Typedoc configuration file", - fileMatch = {"typedoc.json"}, - url = "https://typedoc.org/schema.json" - }, - { - name = "huskyrc", - description = "Husky can prevent bad `git commit`, `git push` and more 🐶 woof!", - fileMatch = {".huskyrc", ".huskyrc.json"}, - url = "https://json.schemastore.org/huskyrc.json" - }, - { - name = ".lintstagedrc", - description = "JSON schema for lint-staged config", - fileMatch = {".lintstagedrc", ".lintstagedrc.json"}, - url = "https://json.schemastore.org/lintstagedrc.schema.json" - }, - { - name = "mta.yaml", - description = "A JSON schema for MTA projects v3.3", - fileMatch = {"mta.yaml", "mta.yml"}, - url = "https://json.schemastore.org/mta.json" - }, - { - name = "mtad.yaml", - description = "A JSON schema for MTA deployment descriptors v3.3", - fileMatch = {"mtad.yaml", "mtad.yml"}, - url = "https://json.schemastore.org/mtad.json" - }, - { - name = ".mtaext", - description = "A JSON schema for MTA extension descriptors v3.3", - fileMatch = {"*.mtaext"}, - url = "https://json.schemastore.org/mtaext.json" - }, - { - name = "xs-app.json", - description = "JSON schema for the SAP Application Router v8.2.2", - fileMatch = {"xs-app.json"}, - url = "https://json.schemastore.org/xs-app.json" - }, - { - name = "Opctl", - description = "Opctl schema for describing an op", - url = "https://json.schemastore.org/opspec-io-0.1.7.json", - fileMatch = {".opspec/*/*.yml", ".opspec/*/*.yaml"} - }, - { - name = "HEMTT", - description = "HEMTT Project File", - url = "https://json.schemastore.org/hemtt-0.6.2.json", - fileMatch = {"hemtt.json", "hemtt.toml"}, - versions = { - ["0.6.2"] = "https://json.schemastore.org/hemtt-0.6.2.json" - } - }, - { - name = "now", - description = "ZEIT Now project configuration file", - fileMatch = {"now.json"}, - url = "https://json.schemastore.org/now.json" - }, - { - name = "taskcat", - description = "taskcat", - fileMatch = {".taskcat.yml"}, - url = "https://raw.githubusercontent.com/aws-quickstart/taskcat/0.9.20/taskcat/cfg/config_schema.json" - }, - { - name = "BizTalkServerApplicationSchema", - description = "BizTalk server application inventory json file.", - fileMatch = {"BizTalkServerInventory.json"}, - url = "https://json.schemastore.org/BizTalkServerApplicationSchema.json" - }, - { - name = "httpmockrc", - description = "Http-mocker is a tool for mock local requests or proxy remote requests.", - fileMatch = {".httpmockrc", ".httpmock.json"}, - url = "https://json.schemastore.org/httpmockrc.json" - }, - { - name = "neoload", - description = "Neotys as-code load test specification, more at: https://github.com/Neotys-Labs/neoload-cli", - fileMatch = {".nl.yaml", ".nl.yml", ".nl.json", ".neoload.yaml", ".neoload.yml", ".neoload.json"}, - url = "https://raw.githubusercontent.com/Neotys-Labs/neoload-cli/1.1.4/resources/as-code.latest.schema.json" - }, - { - name = "release drafter", - description = "Release Drafter configuration file", - fileMatch = {".github/release-drafter.yml"}, - url = "https://raw.githubusercontent.com/release-drafter/release-drafter/master/schema.json" - }, - { - name = "zuul", - description = "Zuul CI configuration file", - fileMatch = {"*zuul.d/*.yaml", "*/.zuul.yaml"}, - url = "https://raw.githubusercontent.com/pycontribs/zuul-lint/0.1.1/zuul_lint/zuul-schema.json" - }, - { - name = "Briefcase", - description = "Microsoft Briefcase configuration file", - fileMatch = {"briefcase.yaml"}, - url = "https://raw.githubusercontent.com/microsoft/Briefcase/master/mlbriefcase/briefcase-schema.json" - }, - { - name = "httparchive", - description = "HTTP Archive", - fileMatch = {"*.har"}, - url = "https://raw.githubusercontent.com/ahmadnassri/har-schema/v2.0.0/lib/har.json" - }, - { - name = "jsdoc", - description = "JSDoc configuration file", - fileMatch = {"conf.js*", "jsdoc.js*"}, - url = "https://json.schemastore.org/jsdoc-1.0.0.json" - }, - { - name = "Ray", - description = "Ray autocluster configuration file", - fileMatch = {"ray-*-cluster.yaml"}, - url = "https://raw.githubusercontent.com/ray-project/ray/ray-1.0.0/python/ray/autoscaler/ray-schema.json" - }, - { - name = "Hadolint", - description = "A smarter Dockerfile linter that helps you build best practice Docker images.", - fileMatch = {".hadolint.yaml", "hadolint.yaml", ".hadolint.yml", "hadolint.yml"}, - url = "https://raw.githubusercontent.com/hadolint/hadolint/master/contrib/hadolint.json" - }, - { - name = "helmfile", - description = "Helmfile is a declarative spec for deploying helm charts", - fileMatch = {"helmfile.yaml", "helmfile.d/**/*.yaml"}, - url = "https://json.schemastore.org/helmfile.json" - }, - { - name = "Container Structure Test", - description = "The Container Structure Tests provide a powerful framework to validate the structure of a container image.", - fileMatch = {"container-structure-test.yaml", "structure-test.yaml"}, - url = "https://json.schemastore.org/container-structure-test.json" - }, - { - name = "Žinoma", - description = "Žinoma incremental build configuration", - fileMatch = {"zinoma.yml"}, - url = "https://github.com/fbecart/zinoma/releases/latest/download/zinoma-schema.json" - }, - { - name = "Windows Package Manager Singleton Manifest", - description = "Windows Package Manager Singleton Manifest file", - url = "https://json.schemastore.org/winget-pkgs-singleton-1.0.0.json", - fileMatch = {"manifests/*/*/*.yaml", "manifests/?/*/*/*/*.*.yaml"}, - versions = { - ["0.1"] = "https://json.schemastore.org/winget-pkgs-singleton-0.1.json", - ["1.0.0"] = "https://json.schemastore.org/winget-pkgs-singleton-1.0.0.json" - } - }, - { - name = "Windows Package Manager Installer Manifest", - description = "Windows Package Manager Installer Manifest file, used for detailing installer specific metadata.", - url = "https://json.schemastore.org/winget-pkgs-installer-1.0.0.json", - fileMatch = {"manifests/?/*/*/*/*.*.installer.yaml"} - }, - { - name = "Windows Package Manager Locale Manifest", - description = "Windows Package Manager Locale Manifest file, used for detailing locale specific metadata.", - url = "https://json.schemastore.org/winget-pkgs-locale-1.0.0.json", - fileMatch = {"manifests/?/*/*/*/*.*.locale@(.en-US|fr-FR|it-IT|ja-JP|ko-KR|pt-BR|ru-RU|zh-CN|zh-TW).yaml"} - }, - { - name = ".commitlintrc", - description = "JSON schema for commitlint configuration files", - fileMatch = {".commitlintrc", ".commitlintrc.json"}, - url = "https://json.schemastore.org/commitlintrc.json" - }, - { - name = "Uniswap Token List", - description = "A list of tokens compatible with the Uniswap Interface", - fileMatch = {"*.tokenlist.json"}, - url = "https://uniswap.org/tokenlist.schema.json" - }, - { - name = "yamllint", - description = "yamllint uses a set of rules to check source files for problems", - fileMatch = {"**/.yamllint", "**/.yamllint.yaml", "**/.yamllint.yml"}, - url = "https://json.schemastore.org/yamllint.json" - }, - { - name = "Yippee-Ki-JSON configuration YML", - description = "Action and rule configuration descriptor for Yippee-Ki-JSON transformations.", - fileMatch = {"**/yippee-*.yml", "**/*.yippee.yml"}, - url = "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/v1.3.2/schema/yippee-ki-json_config_schema.json", - versions = { - ["1.1.2"] = "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/v1.1.2/schema/yippee-ki-json_config_schema.json", - latest = "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/main/schema/yippee-ki-json_config_schema.json" - } - }, - { - name = "docker-compose.yml", - description = "The Compose specification establishes a standard for the definition of multi-container platform-agnostic applications. ", - fileMatch = { - "**/docker-compose.yml", - "**/docker-compose.yaml", - "**/docker-compose.*.yml", - "**/docker-compose.*.yaml", - "**/compose.yml", - "**/compose.yaml", - "**/compose.*.yml", - "**/compose.*.yaml" - }, - url = "https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json" - }, - { - name = "devinit", - description = "Devinit configuration file schema.", - url = "https://json.schemastore.org/devinit.schema-6.0.json", - fileMatch = {"devinit.json", ".devinit.json"}, - versions = { - ["1.0"] = "https://json.schemastore.org/devinit.schema-1.0.json", - ["2.0"] = "https://json.schemastore.org/devinit.schema-2.0.json", - ["3.0"] = "https://json.schemastore.org/devinit.schema-3.0.json", - ["4.0"] = "https://json.schemastore.org/devinit.schema-4.0.json", - ["5.0"] = "https://json.schemastore.org/devinit.schema-5.0.json", - ["6.0"] = "https://json.schemastore.org/devinit.schema-6.0.json" - } - }, - { - name = "tsoa", - description = "JSON Schema for the tsoa configuration file", - url = "https://json.schemastore.org/tsoa.json", - fileMatch = {"**/tsoa.json"} - }, - { - name = "API Builder", - description = "apibuilder.io schema", - fileMatch = {"**/api.json"}, - url = "https://json.schemastore.org/apibuilder.json" - }, - { - name = "Gradle Enterprise", - description = "Gradle Enterprise configuration schema", - fileMatch = {"*gradle-enterprise.yml", "*gradle-enterprise.yaml"}, - url = "https://docs.gradle.com/enterprise/admin/schema/gradle-enterprise-config-schema-2.json", - versions = { - ["1.0"] = "https://docs.gradle.com/enterprise/admin/schema/gradle-enterprise-config-schema-1.json", - ["2.0"] = "https://docs.gradle.com/enterprise/admin/schema/gradle-enterprise-config-schema-2.json" - } - }, - { - name = ".yarnrc.yml", - description = "JSON Schema for Yarnrc files", - fileMatch = {".yarnrc.yml"}, - url = "https://yarnpkg.com/configuration/yarnrc.json" - }, - { - name = "beau.yml", - description = "JSON Schema for a Beaujs Requests file.", - fileMatch = {"beau.yml"}, - url = "https://beaujs.com/schema.json" - }, - { - name = "Better Code Hub", - description = "Configuration file for Better Code Hub to override the default configuration.", - fileMatch = {".bettercodehub.yml"}, - url = "https://json.schemastore.org/bettercodehub.json" - }, - { - name = "comet", - description = "JSON Schema for a Comet Data Pipeline.", - fileMatch = {"*.comet.yaml", "*.comet.yml"}, - url = "https://json.schemastore.org/comet.json" - }, - { - name = "swcrc", - description = "JSON Schema for swc configuration files.", - fileMatch = {".swcrc"}, - url = "https://json.schemastore.org/swcrc.json" - }, - { - name = "OpenWeather Road Risk API", - description = "JSON Schema for OpenWeather Road Risk API responses.", - fileMatch = {}, - url = "https://json.schemastore.org/openweather.roadrisk.json" - }, - { - name = "OpenWeather Current Weather API", - description = "JSON Schema for OpenWeather Current Weather API responses.", - fileMatch = {}, - url = "https://json.schemastore.org/openweather.current.json" - }, - { - name = "JSON-e templates", - description = "JSON Schema for JSON-e templates.", - fileMatch = {}, - url = "https://json.schemastore.org/jsone.json" - }, - { - name = "Taskfile YAML Schema", - description = "JSON Schema for Taskfile files.", - fileMatch = {"Taskfile.yaml", "Taskfile.yml"}, - url = "https://json.schemastore.org/taskfile.json" - }, - { - name = "Hammerkit YAML Schema", - description = "JSON Schema for hammerkit files.", - fileMatch = {"build.yaml", "build.yml"}, - url = "https://json.schemastore.org/hammerkit.json" - }, - { - name = "Containerlab", - description = "JSON Schema for Containerlab topology definition files.", - fileMatch = {"*-clab.yaml", "*-clab.yml", "*.clab.yaml", "*.clab.yml"}, - url = "https://raw.githubusercontent.com/srl-labs/containerlab/master/schemas/clab.schema.json" - }, - { - name = "SpecIF", - description = "The Specification Integration Facility (SpecIF) integrates partial system models from different methods and tools in a semantic net. See https://specif.de and https://github.com/GfSE.", - url = "https://json.schemastore.org/specif-1.0.json", - fileMatch = {"*.specif", "*.specif.json"}, - versions = { - ["1.0"] = "https://json.schemastore.org/specif-1.0.json" - } - }, - { - name = "User Journey Map YAML Schema", - description = "JSON Schema for user journey map definition files.", - fileMatch = {"*.jm.yaml", "*.jm.yml"}, - url = "https://raw.githubusercontent.com/arvinxx/components/master/packages/journey-map/schema/journey-map.schema.json" - }, - { - name = "RKE Cluster Configuration YAML Schema", - description = "YAML Schema for the cluster.yml configuration file for RKE", - fileMatch = {"cluster.yml", "cluster.yaml"}, - url = "https://raw.githubusercontent.com/dcermak/vscode-rke-cluster-config/main/schemas/cluster.yml.json" - }, - { - name = "RKE Cluster Configuration JSON Schema", - description = "JSON Schema for the cluster.json configuration file for RKE", - fileMatch = {"cluster.json"}, - url = "https://raw.githubusercontent.com/dcermak/vscode-rke-cluster-config/main/schemas/cluster.json" - }, - { - name = "Liquibase", - description = "Use this schema to get auto-suggestions for your liquibase JSON/YAML files.", - fileMatch = {"**/db/changelog/**/*.yaml", "**/db/changelog/**/*.yml", "**/db/changelog/**/*.json"}, - url = "https://json.schemastore.org/liquibase.json" - }, - { - name = "Pipeline component", - description = "YAML schema for the Kubeflow Pipelines' component.yaml files which describe a pipeline components. Component consists of input/output definitions and the description of the implementation which can either be a containerized command line program or a interconnected graph of tasks. See https://cloud-pipelines.github.io/links/component_authoring_documentation", - fileMatch = {"component.yaml", "kfp_component.yaml", "kfp_component.json"}, - url = "https://raw.githubusercontent.com/Cloud-Pipelines/component_spec_schema/stable/component_spec.json_schema.json" - }, - { - name = "skaffold.yaml", - description = "Schema for the skaffold.yaml configuration file for Skaffold (https://skaffold.dev/)", - fileMatch = {"skaffold.yaml", "skaffold.yml"}, - url = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta20.json", - versions = { - v1alpha1 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1alpha1.json", - v1alpha2 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1alpha2.json", - v1alpha3 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1alpha3.json", - v1alpha4 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1alpha4.json", - v1alpha5 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1alpha5.json", - v1beta1 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta1.json", - v1beta2 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta2.json", - v1beta3 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta3.json", - v1beta4 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta4.json", - v1beta5 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta5.json", - v1beta6 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta6.json", - v1beta7 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta7.json", - v1beta8 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta8.json", - v1beta9 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta9.json", - v1beta10 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta10.json", - v1beta11 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta11.json", - v1beta12 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta12.json", - v1beta13 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta13.json", - v1beta14 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta14.json", - v1beta15 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta15.json", - v1beta16 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta16.json", - v1beta17 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1beta17.json", - v1 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v1.json", - v2alpha1 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2alpha1.json", - v2alpha2 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2alpha2.json", - v2alpha3 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2alpha3.json", - v2alpha4 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2alpha4.json", - v2beta1 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta1.json", - v2beta2 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta2.json", - v2beta3 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta3.json", - v2beta4 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta4.json", - v2beta5 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta5.json", - v2beta6 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta6.json", - v2beta7 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta7.json", - v2beta8 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta8.json", - v2beta9 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta9.json", - v2beta10 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta10.json", - v2beta11 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta11.json", - v2beta12 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta12.json", - v2beta13 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta13.json", - v2beta14 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta14.json", - v2beta15 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta15.json", - v2beta16 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta16.json", - v2beta17 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta17.json", - v2beta18 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta18.json", - v2beta19 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta19.json", - v2beta20 = "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/master/docs/content/en/schemas/v2beta20.json" - } - }, - { - name = "markdownlint.json", - description = "Markdownlint configuration file", - fileMatch = { - ".markdownlintrc", - ".markdownlint.json", - ".markdownlint.jsonc", - ".markdownlint.yaml", - ".markdownlint.yml" - }, - url = "https://json.schemastore.org/markdownlint.json" - }, - { - name = "SauceCTL Configuration", - description = "JSON Schema for SauceCTL configuration files.", - fileMatch = {"**/.sauce/*.yml"}, - url = "https://raw.githubusercontent.com/saucelabs/saucectl/main/api/v1alpha/generated/saucectl.schema.json" - } - } -} diff --git a/lua/keybinds.lua b/lua/keybinds.lua new file mode 100644 index 0000000..d993b87 --- /dev/null +++ b/lua/keybinds.lua @@ -0,0 +1,30 @@ +vim.keymap.set('n', '', 'nohlsearch') +vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) + +-- Navigate buffers with ALT +vim.api.nvim_set_keymap('', '', '', { silent = true }) +vim.api.nvim_set_keymap('', '', '', { silent = true }) +vim.api.nvim_set_keymap('', '', '', { silent = true }) +vim.api.nvim_set_keymap('', '', '', { silent = true }) +vim.api.nvim_set_keymap('', '', '', { silent = true, noremap = true }) + +local print_namespace = function() + local cmd = 'bash -c "xq *.csproj -q RootNamespace"' + -- insert namespace NAMESPACE.PATH.TO.FILE; at the start of the file + local output = vim.fn.system(cmd):gsub('\n', '') + local relative_path = vim.fn.expand('%:h') + local short_path = relative_path:gsub('/', '.') + local namespace = output .. '.' .. short_path + if relative_path == '.' then + namespace = output + end + vim.cmd([[normal! gg]]) + vim.cmd([[normal! }]]) + vim.cmd([[normal! o]]) + vim.api.nvim_put({ 'namespace ' .. namespace .. ';' }, 'c', true, true) + vim.cmd([[normal! o]]) +end + +vim.keymap.set('n', 'n', print_namespace, { silent = true }) + +vim.api.nvim_set_keymap('n', '', 'terminali', { silent = true }) diff --git a/lua/keys.lua b/lua/keys.lua deleted file mode 100644 index 6fac092..0000000 --- a/lua/keys.lua +++ /dev/null @@ -1,78 +0,0 @@ -vim.api.nvim_set_keymap( - "n", - "ff", - "lua require('telescope.builtin').find_files({hidden = true})", - {silent = true} -) -vim.api.nvim_set_keymap( - "n", - "fF", - "lua require('telescope.builtin').find_files({no_ignore=true, no_ignore_parent = true, hidden = true})", - {silent = true} -) -vim.api.nvim_set_keymap("n", "fg", "lua require('telescope.builtin').live_grep()", {silent = true}) --- vim.api.nvim_set_keymap("n", "fb", "lua require('telescope.builtin').buffers()", {silent = true}) -vim.api.nvim_set_keymap("n", "fh", "lua require('telescope.builtin').help_tags()", {silent = true}) -vim.api.nvim_set_keymap("n", "fB", "lua require('telescope.builtin').git_branches()", {silent = true}) -vim.api.nvim_set_keymap("n", "ft", "TodoTelescope", {silent = true}) -vim.api.nvim_set_keymap("n", "fj", "Telescope jsonfly", {silent = true}) -vim.api.nvim_set_keymap("n", "fb", "Telescope buffers", {silent = true}) -vim.api.nvim_set_keymap("n", "gr", "lua require('telescope.builtin').lsp_references()", {silent = true}) -vim.api.nvim_set_keymap("n", "gd", "lua require('telescope.builtin').lsp_definitions()", {silent = true}) -local opts = {noremap = true, silent = true} -vim.api.nvim_set_keymap( - "n", - "", - "lua require('telescope.builtin').lsp_definitions()", - opts -) -vim.api.nvim_set_keymap( - "n", - "", - "lua require('telescope.builtin').lsp_references()", - opts -) -vim.api.nvim_set_keymap("n", "gi", "lua require('telescope.builtin').lsp_implementations()", {silent = true}) -vim.api.nvim_set_keymap("n", "D", "lua vim.diagnostic.goto_next { wrap = false }", {silent = true}) -vim.api.nvim_set_keymap("n", "b", "Gitsigns blame_line", {silent = true}) -vim.api.nvim_set_keymap("", "q:", "", {silent = true}) -vim.api.nvim_set_keymap("n", "h", "RestNvim", {silent = true}) -vim.api.nvim_set_keymap("n", "", ":terminali", {silent = true}) -vim.api.nvim_set_keymap("t", "", "", {silent = true, noremap = true}) -vim.api.nvim_set_keymap("", "", "", {silent = true}) -vim.api.nvim_set_keymap("", "", "", {silent = true}) -vim.api.nvim_set_keymap("", "", "", {silent = true}) -vim.api.nvim_set_keymap("", "", "", {silent = true}) -vim.api.nvim_set_keymap("", "", "", {silent = true, noremap = true}) -vim.api.nvim_set_keymap("n", "i", "!ocamlc -i -c %>%i", {silent = true}) - -local insert_random_uuid = function() - local id, _ = vim.fn.system("uuidgen"):gsub("\n", ""):gsub("-", ""):upper() - vim.api.nvim_put({id}, "c", true, true) -end -local insert_random_uuid_dashed = function() - local id, _ = vim.fn.system("uuidgen"):gsub("\n", ""):upper() - vim.api.nvim_put({id}, "c", true, true) -end - -vim.keymap.set("n", "u", insert_random_uuid, {noremap = true, silent = true}) -vim.keymap.set("n", "U", insert_random_uuid_dashed, {noremap = true, silent = true}) - -local print_namespace = function() - local cmd = 'bash -c "xq *.csproj -q RootNamespace"' - -- insert namespace NAMESPACE.PATH.TO.FILE; at the start of the file - local output = vim.fn.system(cmd):gsub("\n", "") - local relative_path = vim.fn.expand("%:h") - local short_path = relative_path:gsub("/", ".") - local namespace = output .. "." .. short_path - if relative_path == "." then - namespace = output - end - vim.cmd [[normal! gg]] - vim.cmd [[normal! }]] - vim.cmd [[normal! o]] - vim.api.nvim_put({"namespace " .. namespace .. ";"}, "c", true, true) - vim.cmd [[normal! o]] -end - -vim.keymap.set("n", "n", print_namespace, {silent = true}) diff --git a/lua/plugins.lua b/lua/plugins.lua deleted file mode 100644 index 46546da..0000000 --- a/lua/plugins.lua +++ /dev/null @@ -1,372 +0,0 @@ -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not vim.loop.fs_stat(lazypath) then - vim.fn.system( - { - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable release - lazypath - } - ) -end -vim.opt.rtp:prepend(lazypath) - -require("lazy").setup( - { - "wbthomason/packer.nvim", - { - "MasterGordon/monokai.nvim", - -- dir = "$HOME/git/monokai.nvim", - config = function() - require("monokai").setup() - end - }, - { - "kyazdani42/nvim-web-devicons", - config = function() - require("plugins/icons") - end - }, - { - "nvim-treesitter/playground", - dependencies = {"nvim-treesitter/nvim-treesitter"} - }, - { - "nvim-treesitter/nvim-treesitter", - config = function() - require "plugins/treesitter" - end, - dependencies = { - "JoosepAlviste/nvim-ts-context-commentstring", - "windwp/nvim-ts-autotag", - "windwp/nvim-autopairs" - } - }, - { - "numToStr/Comment.nvim", - after = "nvim-ts-context-commentstring", - config = function() - require("Comment").setup { - pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(), - mappings = { - basic = true - } - } - end - }, - { - "folke/snacks.nvim", - priority = 1000, - lazy = false, - ---@type snacks.Config - opts = { - bigfile = {enabled = true} - } - }, - { - "mhartington/formatter.nvim", - config = function() - require "plugins/formatter" - end - }, - { - "neovim/nvim-lspconfig", - config = function() - require "plugins/lsp" - end, - dependencies = { - "nvimtools/none-ls.nvim", - "davidmh/cspell.nvim", - "RishabhRD/popfix", - "onsails/lspkind-nvim", - "ray-x/lsp_signature.nvim", - "jose-elias-alvarez/typescript.nvim", - "hood/popui.nvim", - "OmniSharp/omnisharp-vim", - "yioneko/nvim-vtsls", - "williamboman/mason.nvim", - "williamboman/mason-lspconfig.nvim", - "jay-babu/mason-null-ls.nvim", - "seblj/roslyn.nvim", - "blink.cmp" - } - }, - { - "luckasRanarison/tailwind-tools.nvim", - dependencies = {"nvim-treesitter/nvim-treesitter"}, - opts = { - server = { - override = false - }, - document_color = { - enabled = true, -- can be toggled by commands - kind = "inline", -- "inline" | "foreground" | "background" - inline_symbol = "󰝤 ", -- only used in inline mode - debounce = 200 -- in milliseconds, only applied in insert mode - }, - conceal = { - enabled = false, -- can be toggled by commands - min_length = nil, -- only conceal classes exceeding the provided length - symbol = "󱏿", -- only a single character is allowed - highlight = { - -- extmark highlight options, see :h 'highlight' - fg = "#38BDF8" - } - }, - custom_filetypes = {} -- see the extension section to learn how it works - } -- your configuration - }, - { - "OXY2DEV/markview.nvim", - lazy = false, -- Recommended - -- ft = "markdown" -- If you decide to lazy-load anyway - - dependencies = { - "nvim-treesitter/nvim-treesitter", - "nvim-tree/nvim-web-devicons" - }, - config = function() - require("markview").setup( - { - hybrid_modes = {"n"} - } - ) - end - }, - { - "nvim-telescope/telescope.nvim", - config = function() - require("plugins/telescope") - end, - dependencies = { - "nvim-lua/popup.nvim", - "nvim-lua/plenary.nvim", - "nvim-telescope/telescope-ui-select.nvim" - } - }, - { - "uga-rosa/ccc.nvim", - config = function() - require("ccc").setup( - { - highlighter = { - auto_enable = true, - lsp = true - } - } - ) - end - }, - { - "folke/todo-comments.nvim", - dependencies = "nvim-lua/plenary.nvim", - config = function() - require("todo-comments").setup {} - end - }, - { - "lewis6991/gitsigns.nvim", - dependencies = { - "nvim-lua/plenary.nvim" - }, - config = function() - require("gitsigns").setup() - end - }, - "editorconfig/editorconfig-vim", - -- { - -- "hrsh7th/nvim-cmp", - -- config = function() - -- require("plugins/cmp") - -- end, - -- dependencies = { - -- "hrsh7th/cmp-buffer", - -- "hrsh7th/cmp-nvim-lsp", - -- "hrsh7th/cmp-path", - -- "hrsh7th/cmp-nvim-lua", - -- "hrsh7th/cmp-emoji", - -- "David-Kunz/cmp-npm", - -- "hrsh7th/cmp-nvim-lsp-signature-help", - -- "saadparwaiz1/cmp_luasnip" - -- } - -- }, - { - "saghen/blink.cmp", - lazy = false, -- lazy loading handled internally - -- optional: provides snippets for the snippet source - dependencies = "rafamadriz/friendly-snippets", - -- use a release tag to download pre-built binaries - version = "v0.*", - -- OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust - -- build = 'cargo build --release', - -- If you use nix, you can build from source using latest nightly rust with: - -- build = 'nix run .#build-plugin', - - ---@module 'blink.cmp' - ---@type blink.cmp.Config - opts = { - -- 'default' for mappings similar to built-in completion - -- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate) - -- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept - -- see the "default configuration" section below for full documentation on how to define - -- your own keymap. - keymap = { - preset = "enter", - [""] = {"show", "show_documentation", "hide_documentation"} - }, - appearance = { - -- sets the fallback highlight groups to nvim-cmp's highlight groups - -- useful for when your theme doesn't support blink.cmp - -- will be removed in a future release, assuming themes add support - use_nvim_cmp_as_default = true, - nerd_font_variant = "mono" - }, - -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' - -- adjusts spacing to ensure icons are aligned - completion = { - menu = { - max_height = 20 - }, - documentation = { - auto_show = true - } - }, - sources = { - cmdline = {} - } - - -- experimental auto-brackets support - -- accept = { auto_brackets = { enabled = true } } - - -- experimental signature help support - -- trigger = { signature_help = { enabled = true } } - }, - -- allows extending the enabled_providers array elsewhere in your config - -- without having to redefining it - opts_extend = {"sources.completion.enabled_providers"} - }, - { - "L3MON4D3/LuaSnip", - version = "v2.*", - build = "make install_jsregexp" - }, - { - "saecki/crates.nvim", - event = {"BufRead Cargo.toml"}, - dependencies = {{"nvim-lua/plenary.nvim"}}, - config = function() - require("crates").setup() - end - }, - "aklt/plantuml-syntax", - -- { - -- "github/copilot.vim", - -- config = function() - -- require("plugins/copilot") - -- end - -- }, - { - "supermaven-inc/supermaven-nvim", - config = function() - if not (vim.fn.has_key(vim.fn.environ(), "LOAD_SUPERMAVEN") == 0) then - require("supermaven-nvim").setup({}) - end - end - }, - { - "ggandor/lightspeed.nvim", - dependencies = {"tpope/vim-repeat"} - }, - "jghauser/mkdir.nvim", - { - "David-Kunz/cmp-npm", - dependencies = { - "nvim-lua/plenary.nvim" - } - }, - { - "rebelot/heirline.nvim", - config = function() - require "plugins/heirline" - end, - dependencies = { - "kyazdani42/nvim-web-devicons", - "nvim-treesitter/nvim-treesitter", - "j-hui/fidget.nvim", - "monokai.nvim", - "nvim-lspconfig" - } - }, - "isobit/vim-caddyfile", - { - "nvim-neotest/neotest", - config = function() - require("plugins/neotest") - end, - event = {"BufRead *.test.*,*.spec.*,*Test.*,*.zig"}, - dependencies = { - "lawrence-laz/neotest-zig", - "nvim-lua/plenary.nvim", - "nvim-treesitter/nvim-treesitter", - "antoinemadec/FixCursorHold.nvim", - "haydenmeade/neotest-jest", - "monokai.nvim" - } - }, - { - "andweeb/presence.nvim", - config = function() - require("presence"):setup() - end - }, - { - "rcarriga/nvim-dap-ui", - config = function() - require("plugins/dap") - end, - dependencies = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} - }, - { - "nvim-neo-tree/neo-tree.nvim", - branch = "main", - config = function() - require("plugins/neo-tree") - end, - dependencies = { - "nvim-lua/plenary.nvim", - "kyazdani42/nvim-web-devicons", -- not strictly required, but recommended - "MunifTanjim/nui.nvim", - "s1n7ax/nvim-window-picker", - "monokai.nvim" - } - }, - { - "luukvbaal/statuscol.nvim", - config = function() - require("statuscol").setup( - { - -- setopt = true, - ft_ignore = {"neo-tree"} - } - ) - end - }, - { - "axelvc/template-string.nvim", - config = function() - require("template-string").setup() - end - }, - { - "hedyhli/outline.nvim", - config = function() - -- Example mapping to toggle outline - vim.keymap.set("n", "o", "Outline", {desc = "Toggle Outline"}) - - require("outline").setup {} - end - } - } -) diff --git a/lua/plugins/blink.lua b/lua/plugins/blink.lua new file mode 100644 index 0000000..70c55aa --- /dev/null +++ b/lua/plugins/blink.lua @@ -0,0 +1,40 @@ +return { + 'saghen/blink.cmp', + dependencies = { 'rafamadriz/friendly-snippets' }, + version = '1.*', + build = 'cargo build --release', + + ---@module 'blink.cmp' + ---@type blink.cmp.Config + opts = { + keymap = { + preset = 'enter', + [''] = { 'show', 'show_documentation', 'hide_documentation' }, + }, + + appearance = { + nerd_font_variant = 'mono', + }, + + completion = { + documentation = { auto_show = true }, + menu = { + max_height = 24, + }, + }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + }, + cmdline = { + enabled = false, + }, + fuzzy = { implementation = 'prefer_rust_with_warning' }, + enabled = function() + return not vim.tbl_contains({ 'sagarename' }, vim.bo.filetype) + end, + }, + opts_extend = { 'sources.default' }, +} diff --git a/lua/plugins/ccc.lua b/lua/plugins/ccc.lua new file mode 100644 index 0000000..34fe308 --- /dev/null +++ b/lua/plugins/ccc.lua @@ -0,0 +1,11 @@ +return { + 'uga-rosa/ccc.nvim', + config = function() + require('ccc').setup({ + highlighter = { + auto_enable = true, + lsp = true, + }, + }) + end, +} diff --git a/lua/plugins/cmp.lua b/lua/plugins/cmp.lua deleted file mode 100644 index 51dc726..0000000 --- a/lua/plugins/cmp.lua +++ /dev/null @@ -1,98 +0,0 @@ -local cmp = require "cmp" -require("cmp-npm").setup({}) - -local cmp_kinds = { - Text = " ", - Method = " ", - Function = " ", - Constructor = " ", - Field = " ", - Variable = " ", - Class = " ", - Interface = " ", - Module = " ", - Property = " ", - Unit = " ", - Value = " ", - Enum = " ", - Keyword = " ", - Snippet = " ", - Color = " ", - File = " ", - Reference = " ", - Folder = " ", - EnumMember = " ", - Constant = " ", - Struct = " ", - Event = " ", - Operator = " ", - TypeParameter = " ", - Copilot = " " -} - -options = { - confirm_opts = { - behavior = cmp.ConfirmBehavior.Replace, - select = false - }, - experimental = { - ghost_text = true, - native_menu = false - }, - snippet = { - expand = function(args) - require "luasnip".lsp_expand(args.body) - end - }, - formatting = { - kind_icons = cmp_kinds, - source_names = { - nvim_lsp = "", - emoji = "", - path = "(Path)", - calc = "(Calc)", - cmp_tabnine = "(Tabnine)", - vsnip = "(Snippet)", - luasnip = "(Snippet)", - buffer = "(Buffer)" - }, - duplicates = { - buffer = 1, - path = 1, - nvim_lsp = 0, - luasnip = 1 - }, - duplicates_default = 0, - format = function(entry, vim_item) - vim_item.kind = options.formatting.kind_icons[vim_item.kind] .. " " .. vim_item.kind - vim_item.menu = options.formatting.source_names[entry.source.name] - vim_item.dup = options.formatting.duplicates[entry.source.name] or options.formatting.duplicates_default - return vim_item - end, - fields = {"abbr", "kind", "menu"} - --[[ format = function(_, vim_item) - vim_item.kind = cmp_kinds[vim_item.kind] or "" - return vim_item - end ]] - }, - mapping = { - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.close(), - [""] = cmp.mapping.confirm({select = true}), - [""] = cmp.mapping.select_prev_item(), - [""] = cmp.mapping.select_next_item() - }, - sources = { - {name = "nvim_lsp"}, - {name = "path"}, - {name = "luasnip"}, - {name = "nvim_lua"}, - -- {name = "buffer"}, - {name = "emoji"}, - {name = "copilot", group_index = 2}, - {name = "npm", keyword_length = 4}, - {name = "nvim_lsp_signature_help"} - } -} - -cmp.setup(options) diff --git a/lua/plugins/conform.lua b/lua/plugins/conform.lua new file mode 100644 index 0000000..e304d0c --- /dev/null +++ b/lua/plugins/conform.lua @@ -0,0 +1,56 @@ +return { + 'stevearc/conform.nvim', + event = { 'BufWritePre' }, + cmd = { 'ConformInfo' }, + keys = { + { + -- Customize or remove this keymap to your liking + 'f', + function() + require('conform').format({ async = true }) + end, + mode = '', + desc = 'Format buffer', + }, + }, + -- This will provide type hinting with LuaLS + ---@module "conform" + ---@type conform.setupOpts + opts = { + -- Define your formatters + formatters_by_ft = { + lua = { 'stylua' }, + javascript = { 'prettierd', 'prettier', stop_after_first = true }, + javascriptreact = { 'prettierd', 'prettier', stop_after_first = true }, + typescript = { 'prettierd', 'prettier', stop_after_first = true }, + typescriptreact = { 'prettierd', 'prettier', stop_after_first = true }, + css = { 'prettierd', 'prettier', stop_after_first = true }, + scss = { 'prettierd', 'prettier', stop_after_first = true }, + json = { 'prettierd', 'prettier', stop_after_first = true }, + jsonc = { 'prettierd', 'prettier', stop_after_first = true }, + markdown = { 'prettierd', 'prettier', stop_after_first = true }, + cs = { 'astyle' }, + php = { 'php_cs_fixer' }, + go = { 'gofmt' }, + }, + -- Set default options + default_format_opts = { + lsp_format = 'fallback', + }, + -- Set up format-on-save + format_on_save = { timeout_ms = 500 }, + -- Customize formatters + formatters = { + shfmt = { + prepend_args = { '-i', '2' }, + }, + astyle = { + prepend_args = { '--style=java', '--max-code-length=80', '--squeeze-ws' }, + }, + }, + }, + init = function() + -- If you want the formatexpr, here is the place to set it + vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" + end, +} diff --git a/lua/plugins/copilot.lua b/lua/plugins/copilot.lua deleted file mode 100644 index 2bb7189..0000000 --- a/lua/plugins/copilot.lua +++ /dev/null @@ -1,3 +0,0 @@ -vim.g.copilot_enabled = true --- Map Ctrl-Enter to copilot#Accept --- vim.cmd(":Copilot disable>") diff --git a/lua/plugins/dap.lua b/lua/plugins/dap.lua deleted file mode 100644 index 6d699b2..0000000 --- a/lua/plugins/dap.lua +++ /dev/null @@ -1,90 +0,0 @@ --- dapui -require("dapui").setup( - { - controls = { - enabled = false - } - } -) -local dap, dapui = require("dap"), require("dapui") -dap.listeners.after.event_initialized["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 - --- C# -dap.adapters.coreclr = { - type = "executable", - command = "netcoredbg", - args = {"--interpreter=vscode"} -} - -vim.g.dotnet_build_project = function() - local default_path = vim.fn.getcwd() .. "/" - if vim.g["dotnet_last_proj_path"] ~= nil then - default_path = vim.g["dotnet_last_proj_path"] - end - local cmd = "dotnet build -c Debug > /dev/null" - print("") - print("Cmd to execute: " .. cmd) - local f = os.execute(cmd) - if f == 0 then - print("\nBuild: ✔️ ") - else - print("\nBuild: ❌ (code: " .. f .. ")") - end -end - -vim.g.dotnet_get_dll_path = function() - local cwd = vim.fn.getcwd() - local solution = vim.fn.glob(cwd .. "/*.csproj") - local projectName = vim.fn.fnamemodify(solution, ":t:r") - local dll = cwd .. "/bin/Debug/net7.0/linux-x64/" .. projectName .. ".dll" - return dll -end - -local config = { - { - type = "coreclr", - name = "launch - netcoredbg", - request = "launch", - program = function() - if vim.fn.confirm("Should I recompile first?", "&yes\n&no", 2) == 1 then - vim.g.dotnet_build_project() - end - return vim.g.dotnet_get_dll_path() - end - } -} - -dap.configurations.cs = config - --- keybindings -local api = vim.api -local keymap_restore = {} -dap.listeners.after["event_initialized"]["me"] = function() - for _, buf in pairs(api.nvim_list_bufs()) do - local keymaps = api.nvim_buf_get_keymap(buf, "n") - for _, keymap in pairs(keymaps) do - if keymap.lhs == "K" then - table.insert(keymap_restore, keymap) - api.nvim_buf_del_keymap(buf, "n", "K") - end - end - end - api.nvim_set_keymap("n", "K", 'lua require("dap.ui.widgets").hover()', {silent = true}) -end - -dap.listeners.after["event_terminated"]["me"] = function() - for _, keymap in pairs(keymap_restore) do - api.nvim_buf_set_keymap(keymap.buffer, keymap.mode, keymap.lhs, keymap.rhs, {silent = keymap.silent == 1}) - end - keymap_restore = {} -end -api.nvim_set_keymap("n", "B", ":lua require'dap'.toggle_breakpoint()", {noremap = true, silent = true}) -api.nvim_set_keymap("n", "", ":lua require'dap'.continue()", {noremap = true, silent = true}) diff --git a/lua/plugins/diffview.lua b/lua/plugins/diffview.lua deleted file mode 100644 index 7223be2..0000000 --- a/lua/plugins/diffview.lua +++ /dev/null @@ -1,37 +0,0 @@ -local cb = require "diffview.config".diffview_callback - -require "diffview".setup { - diff_binaries = false, -- Show diffs for binaries - use_icons = true, -- Requires nvim-web-devicons - key_bindings = { - disable_defaults = false, -- Disable the default key bindings - -- The `view` bindings are active in the diff buffers, only when the current - -- tabpage is a Diffview. - view = { - [""] = cb("select_next_entry"), -- Open the diff for the next file - [""] = cb("select_prev_entry"), -- Open the diff for the previous file - ["e"] = cb("focus_files"), -- Bring focus to the files panel - ["b"] = cb("toggle_files") -- Toggle the files panel. - }, - file_panel = { - ["j"] = cb("next_entry"), -- Bring the cursor to the next file entry - [""] = cb("next_entry"), - ["k"] = cb("prev_entry"), -- Bring the cursor to the previous file entry. - [""] = cb("prev_entry"), - [""] = cb("select_entry"), -- Open the diff for the selected entry. - ["o"] = cb("select_entry"), - ["<2-LeftMouse>"] = cb("select_entry"), - ["-"] = cb("toggle_stage_entry"), -- Stage / unstage the selected entry. - ["S"] = cb("stage_all"), -- Stage all entries. - ["U"] = cb("unstage_all"), -- Unstage all entries. - ["R"] = cb("refresh_files"), -- Update stats and entries in the file list. - [""] = cb("select_next_entry"), - [""] = cb("select_prev_entry"), - ["e"] = cb("focus_files"), - ["b"] = cb("toggle_files") - } - } -} - -vim.api.nvim_set_keymap("n", "g", ":DiffviewOpen", {silent = true}) -vim.api.nvim_set_keymap("n", "G", ":DiffviewClose", {silent = true}) diff --git a/lua/plugins/formatter.lua b/lua/plugins/formatter.lua deleted file mode 100644 index f204041..0000000 --- a/lua/plugins/formatter.lua +++ /dev/null @@ -1,137 +0,0 @@ -local prettierd = function() - return { - exe = "prettierd", - args = {"'" .. vim.api.nvim_buf_get_name(0) .. "'"}, - stdin = true - } -end - -require("formatter").setup( - { - logging = false, - filetype = { - typescriptreact = {prettierd}, - json = {prettierd}, - jsonc = {prettierd}, - css = {prettierd}, - scss = {prettierd}, - markdown = {prettierd}, - typescript = {prettierd}, - javascript = {prettierd}, - javascriptreact = {prettierd}, - lua = { - -- luafmt - function() - return { - exe = "luafmt", - args = {"--indent-count", 2, "--stdin"}, - stdin = true - } - end - }, - rust = { - function() - return { - exe = "rustfmt", - args = {"--emit=stdout", "--edition=2021"}, - stdin = true - } - end - }, - cpp = { - function() - return { - exe = "clang-format", - args = {"'" .. vim.api.nvim_buf_get_name(0) .. "'"}, - stdin = true - } - end - }, - prisma = { - function() - return { - exe = "npx", - args = {"prisma", "format", "--schema=" .. vim.api.nvim_buf_get_name(0)}, - stdin = false - } - end - }, - swift = { - function() - return { - exe = "swift-format", - stdin = true - } - end - }, - xml = { - function() - return { - exe = "xmllint", - args = {"--format", "-"}, - stdin = true - } - end - }, - cs = { - function() - return { - exe = "dotnet-csharpier", - args = {"--write-stdout"}, - stdin = true - } - end - }, - -- ocaml - ocaml = { - function() - return { - exe = "ocamlformat", - args = {"--name", vim.api.nvim_buf_get_name(0), "-"}, - stdin = true - } - end - }, - php = { - function() - return { - exe = "vendor/bin/php-cs-fixer", - args = { - "fix" - }, - stdin = false, - ignore_exitcode = true - } - end - } - } - } -) - -vim.api.nvim_exec( - [[ -augroup FormatAutogroup - autocmd! - autocmd BufWritePost *.cs,*.h,*.cpp,*.rs,*.lua,*.tsx,*.ts,*.js,*.jsx,*.json,*.jsonc,*.swift,*.xml,*.sln,*.csproj,*.ml,*.php FormatWrite -augroup END -]], - true -) --- local formatGrp = vim.api.nvim_create_augroup("Format", {clear = true}) --- vim.api.nvim_create_autocmd( --- "BufWritePre", --- { --- pattern = "*.php", --- command = "lua vim.lsp.buf.format { async = false }", --- group = formatGrp --- } --- ) - --- local function organize_imports() --- local params = { --- command = "typescript.organizeImports", --- arguments = {vim.api.nvim_buf_get_name(0)}, --- title = "" --- } --- vim.lsp.buf.execute_command(params) --- end diff --git a/lua/plugins/heirline-tabline.lua b/lua/plugins/heirline-tabline.lua new file mode 100644 index 0000000..b0fa39e --- /dev/null +++ b/lua/plugins/heirline-tabline.lua @@ -0,0 +1,193 @@ +---@diagnostic disable-next-line: missing-fields +local colors = require('tokyonight.colors').setup({ + style = 'night', +}) +local utils = require('heirline.utils') + +local TablineFileName = { + provider = function(self) + -- self.filename will be defined later, just keep looking at the example! + local filename = self.filename + filename = filename == '' and '[No Name]' or vim.fn.fnamemodify(filename, ':t') + return filename + end, + hl = function(self) + return { bold = self.is_active or self.is_visible, italic = true } + end, +} + +local TablineFileFlags = { + { + provider = function(self) + if vim.bo[self.bufnr].modified then + return ' [+]' + end + end, + hl = { fg = colors.green }, + }, + { + provider = function(self) + if not vim.bo[self.bufnr].modifiable or vim.bo[self.bufnr].readonly then + return ' ' + end + end, + hl = { fg = 'orange' }, + }, +} + +local diag_signs = vim.diagnostic.config().signs.text or {} +local TablineDiagnostics = { + static = { + error_icon = diag_signs[1], + warn_icon = diag_signs[2], + info_icon = diag_signs[3], + hint_icon = diag_signs[4], + }, + init = function(self) + self.errors = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.ERROR }) + self.warnings = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.WARN }) + self.hints = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.HINT }) + self.info = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.INFO }) + self.has_diags = self.errors > 0 or self.warnings > 0 or self.hints > 0 or self.info > 0 + end, + { + provider = function(self) + return self.has_diags and ' ' + end, + }, + { + provider = function(self) + local has_next = self.warnings > 0 or self.info > 0 or self.hints > 0 + return self.errors > 0 and (self.error_icon .. self.errors .. (has_next and ' ' or '')) + end, + hl = { fg = colors.error }, + }, + { + provider = function(self) + local has_next = self.info > 0 or self.hints > 0 + return self.warnings > 0 and (self.warn_icon .. self.warnings .. (has_next and ' ' or '')) + end, + hl = { fg = colors.warning }, + }, + { + provider = function(self) + local has_next = self.hints > 0 + return self.info > 0 and (self.info_icon .. self.info .. (has_next and ' ' or '')) + end, + hl = { fg = colors.info }, + }, + { + provider = function(self) + return self.hints > 0 and (self.hint_icon .. self.hints) + end, + hl = { fg = colors.hint }, + }, +} + +local TablineFileIcon = { + init = function(self) + local filename = self.filename + local extension = vim.fn.fnamemodify(filename, ':e') + self.icon, self.icon_color = require('nvim-web-devicons').get_icon_color(filename, extension, { default = true }) + end, + provider = function(self) + return self.icon and (' ' .. self.icon .. ' ') + end, + hl = function(self) + return { fg = self.icon_color } + end, +} + +-- Here the filename block finally comes together +local TablineFileNameBlock = { + init = function(self) + self.filename = vim.api.nvim_buf_get_name(self.bufnr) + end, + hl = function(self) + if self.is_active then + return 'TabLineSel' + else + return 'TabLine' + end + end, + on_click = { + callback = function(_, minwid, _, button) + if button == 'm' then -- close on mouse middle click + vim.api.nvim_buf_delete(minwid, { force = true }) + else + vim.api.nvim_win_set_buf(0, minwid) + end + end, + minwid = function(self) + return self.bufnr + end, + name = 'heirline_tabline_buffer_callback', + }, + TablineFileIcon, + TablineFileName, + TablineFileFlags, + TablineDiagnostics, +} + +-- a nice "x" button to close the buffer +local TablineCloseButton = { + condition = function(self) + return not vim.bo[self.bufnr].modified + end, + { provider = ' ' }, + { + provider = '', + hl = { fg = 'gray' }, + on_click = { + callback = function(_, minwid) + vim.api.nvim_buf_delete(minwid, { force = false }) + end, + minwid = function(self) + return self.bufnr + end, + name = 'heirline_tabline_close_buffer_callback', + }, + }, +} + +-- The final touch! +local TablineBufferBlock = { + { + hl = function(self) + if self.is_active then + return { fg = colors.dark3, bg = utils.get_highlight('TabLineSel').bg } + else + return { fg = colors.dark3, bg = utils.get_highlight('TabLine').bg } + end + end, + provider = '', + }, + TablineFileNameBlock, + utils.surround({ '', '' }, function(self) + if self.is_active then + return utils.get_highlight('TabLineSel').bg + else + return utils.get_highlight('TabLine').bg + end + end, TablineCloseButton), + { + hl = function(self) + if self.is_active then + return { fg = colors.dark3, bg = utils.get_highlight('TabLineSel').bg } + else + return { fg = colors.dark3, bg = utils.get_highlight('TabLine').bg } + end + end, + provider = '▐', + }, +} + +-- and here we go +local BufferLine = utils.make_buflist( + TablineBufferBlock, + { provider = '', hl = { fg = 'gray' } }, -- left truncation, optional (defaults to "<") + { provider = '', hl = { fg = 'gray' } } -- right trunctation, also optional (defaults to ...... yep, ">") + -- by the way, open a lot of buffers and try clicking them ;) +) + +return BufferLine diff --git a/lua/plugins/heirline.lua b/lua/plugins/heirline.lua index 36f4619..0f60f8f 100644 --- a/lua/plugins/heirline.lua +++ b/lua/plugins/heirline.lua @@ -1,754 +1,520 @@ -local conditions = require("heirline.conditions") -local utils = require("heirline.utils") - -local colors = { - bg = "#333842", - brown = "#504945", - white = "#f8f8f0", - grey = "#8F908A", - black = "#000000", - pink = "#f92672", - green = "#a6e22e", - blue = "#66d9ef", - yellow = "#e6db74", - orange = "#fd971f", - purple = "#ae81ff", - red = "#e95678", - diag = { - warn = utils.get_highlight("DiagnosticSignWarn").fg, - error = utils.get_highlight("DiagnosticSignError").fg, - hint = utils.get_highlight("DiagnosticSignHint").fg, - info = utils.get_highlight("DiagnosticSignInfo").fg +return { + 'rebelot/heirline.nvim', + dependencies = { + 'folke/tokyonight.nvim', + 'lewis6991/gitsigns.nvim', }, - git = { - del = "#e95678", - add = "#a6e22e", - change = "#ae81ff" - } -} + config = function() + ---@diagnostic disable-next-line: missing-fields + local colors = require('tokyonight.colors').setup({ + style = 'night', + }) + local conditions = require('heirline.conditions') + local utils = require('heirline.utils') + vim.o.laststatus = 3 + vim.o.showtabline = 2 -vim.o.laststatus = 3 + local Align = { provider = '%=' } + local Space = { provider = ' ' } + local SmallSpace = { provider = ' ' } -local ViMode = { - -- get vim current mode, this information will be required by the provider - -- and the highlight functions, so we compute it only once per component - -- evaluation and store it as a component attribute - init = function(self) - self.mode = vim.fn.mode(1) -- :h mode() - end, - -- Now we define some dictionaries to map the output of mode() to the - -- corresponding string and color. We can put these into `static` to compute - -- them at initialisation time. - static = { - mode_names = { - -- change the strings if you like it vvvvverbose! - ["n"] = "NORMAL ", - ["no"] = "N·OPERATOR PENDING ", - ["v"] = "VISUAL ", - ["V"] = "V·LINE ", - [""] = "V·BLOCK ", - ["s"] = "SELECT ", - ["S"] = "S·LINE ", - [""] = "S·BLOCK ", - ["i"] = "INSERT ", - ["R"] = "REPLACE ", - ["Rv"] = "V·REPLACE ", - ["c"] = "COMMAND ", - ["cv"] = "VIM EX ", - ["ce"] = "EX ", - ["r"] = "PROMPT ", - ["rm"] = "MORE ", - ["r?"] = "CONFIRM ", - ["!"] = "SHELL ", - ["t"] = "TERMINAL " - }, - mode_colors = { - n = colors.green, - i = colors.pink, - v = colors.blue, - V = colors.blue, - [""] = colors.blue, - c = colors.red, - s = colors.purple, - S = colors.purple, - [""] = colors.purple, - R = colors.orange, - r = colors.orange, - ["!"] = colors.red, - t = colors.red - } - }, - -- We can now access the value of mode() that, by now, would have been - -- computed by `init()` and use it to index our strings dictionary. - -- note how `static` fields become just regular attributes once the - -- component is instantiated. - -- To be extra meticulous, we can also add some vim statusline syntax to - -- control the padding and make sure our string is always at least 2 - -- characters long. Plus a nice Icon. - provider = function(self) - return " %2(" .. self.mode_names[self.mode] .. "%)" - end, - -- Same goes for the highlight. Now the foreground will change according to the current mode. - hl = function(self) - local mode = self.mode:sub(1, 1) -- get only the first mode character - return {bg = self.mode_colors[mode], fg = colors.bg, bold = true} - end -} - -local FileNameBlock = { - -- let's first set up some attributes needed by this component and it's children - init = function(self) - self.filename = vim.api.nvim_buf_get_name(0) - end -} --- We can now define some children separately and add them later - -local FileIcon = { - init = function(self) - local filename = self.filename - local extension = vim.fn.fnamemodify(filename, ":e") - self.icon, self.icon_color = require("nvim-web-devicons").get_icon_color(filename, extension, {default = true}) - end, - provider = function(self) - return self.icon and (self.icon .. " ") - end, - hl = function(self) - return {fg = self.icon_color, bg = colors.bg} - end -} - -local FileName = { - provider = function(self) - -- first, trim the pattern relative to the current directory. For other - -- options, see :h filename-modifers - local filename = vim.fn.fnamemodify(self.filename, ":.") - if filename == "" then - return "[No Name]" - end - -- now, if the filename would occupy more than 1/4th of the available - -- space, we trim the file path to its initials - -- See Flexible Components section below for dynamic truncation - if not conditions.width_percent_below(#filename, 0.25) then - filename = vim.fn.pathshorten(filename) - end - return filename - end, - hl = {fg = utils.get_highlight("Directory").fg, bg = colors.bg} -} - -local FileFlags = { - { - provider = function() - if vim.bo.modified then - return " [+]" - end - end, - hl = {fg = colors.green, bg = colors.bg} - }, - { - provider = function() - if (not vim.bo.modifiable) or vim.bo.readonly then - return "" - end - end, - hl = {fg = colors.orange} - } -} - --- Now, let's say that we want the filename color to change if the buffer is --- modified. Of course, we could do that directly using the FileName.hl field, --- but we'll see how easy it is to alter existing components using a "modifier" --- component - -local FileNameModifer = { - hl = function() - if vim.bo.modified then - -- use `force` because we need to override the child's hl foreground - return {fg = colors.cyan, bold = true, force = true, bg = colors.bg} - end - end -} - --- let's add the children to our FileNameBlock component -FileNameBlock = - utils.insert( - FileNameBlock, - FileIcon, - utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier - unpack(FileFlags), -- A small optimisation, since their parent does nothing - {provider = "%<"} -- this means that the statusline is cut here when there's not enough space -) - -local Diagnostics = { - condition = conditions.has_diagnostics, - static = { - error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text, - warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text, - info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text, - hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text - }, - init = function(self) - self.errors = #vim.diagnostic.get(0, {severity = vim.diagnostic.severity.ERROR}) - self.warnings = #vim.diagnostic.get(0, {severity = vim.diagnostic.severity.WARN}) - self.hints = #vim.diagnostic.get(0, {severity = vim.diagnostic.severity.HINT}) - self.info = #vim.diagnostic.get(0, {severity = vim.diagnostic.severity.INFO}) - end, - { - provider = function(self) - -- 0 is just another output, we can decide to print it or not! - return self.errors > 0 and (self.error_icon .. self.errors .. " ") - end, - hl = {fg = colors.diag.error, bg = colors.bg} - }, - { - provider = function(self) - return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ") - end, - hl = {fg = colors.diag.warn, bg = colors.bg} - }, - { - provider = function(self) - return self.info > 0 and (self.info_icon .. self.info .. " ") - end, - hl = {fg = colors.diag.info, bg = colors.bg} - }, - { - provider = function(self) - return self.hints > 0 and (self.hint_icon .. self.hints) - end, - hl = {fg = colors.diag.hint, bg = colors.bg} - } -} - -local Git = { - condition = conditions.is_git_repo, - init = function(self) - self.status_dict = vim.b.gitsigns_status_dict - self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0 - end, - hl = {fg = colors.orange, bg = colors.bg}, - { - -- git branch name - provider = function(self) - return " " .. self.status_dict.head - end, - hl = {bold = true, bg = colors.bg} - }, - -- You could handle delimiters, icons and counts similar to Diagnostics - { - condition = function(self) - return self.has_changes - end, - provider = " " - }, - { - provider = function(self) - local count = self.status_dict.added or 0 - return count > 0 and ("  " .. count) - end, - hl = {fg = colors.git.add, bg = colors.bg} - }, - { - provider = function(self) - local count = self.status_dict.removed or 0 - return count > 0 and ("  " .. count) - end, - hl = {fg = colors.git.del, bg = colors.bg} - }, - { - provider = function(self) - local count = self.status_dict.changed or 0 - return count > 0 and ("  " .. count) - end, - hl = {fg = colors.git.change, bg = colors.bg} - } -} - -local WorkDir = { - provider = function() - local icon = " " - local cwd = vim.fn.getcwd(0) - cwd = vim.fn.fnamemodify(cwd, ":~") - if not conditions.width_percent_below(#cwd, 0.25) then - cwd = vim.fn.pathshorten(cwd) - end - local trail = cwd:sub(-1) == "/" and "" or "/" - return icon .. cwd .. trail - end, - hl = {fg = colors.blue, bold = true, bg = colors.bg} -} - -require("fidget").setup( - { - notification = { - window = { - winblend = 0 - } - }, - progress = { - ignore = {"null-ls"} - } - } -) - -local TerminalName = { - -- we could add a condition to check that buftype == 'terminal' - -- or we could do that later (see #conditional-statuslines below) - provider = function() - local tname, _ = vim.api.nvim_buf_get_name(0):gsub(".*:", "") - return " " .. tname - end, - hl = {bold = true, bg = colors.bg} -} - -local Ruler = { - -- %l = current line number - -- %L = number of lines in the buffer - -- %c = column number - -- %P = percentage through file of displayed window - provider = "%7 %p%% Ln %l, Col %c" -} - -local Align = {provider = "%=", hl = {bg = colors.bg}} -local Space = {provider = " "} - -local FileInfoBlock = { - -- let's first set up some attributes needed by this component and it's children - init = function(self) - self.filename = vim.api.nvim_buf_get_name(0) - end -} - -local FileType = { - provider = function() - return vim.bo.filetype - end, - hl = {fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg} -} - -local FileEncoding = { - provider = function() - local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc' - return enc:upper() - end -} - -FileInfoBlock = - utils.insert( - FileInfoBlock, - FileEncoding, - Space, - FileIcon, - FileType, - {provider = "%<"} -- this means that the statusline is cut here when there's not enough space -) - -local FileNameShort = { - provider = function(self) - -- first, trim the pattern relative to the current directory. For other - -- options, see :h filename-modifers - local filename = vim.fn.fnamemodify(self.filename, ":t") - if filename == "" then - return "[No Name]" - end - return filename - end, - hl = {fg = colors.gray, bg = colors.bg} -} - -local FileNameShortBlock = { - init = function(self) - self.filename = vim.api.nvim_buf_get_name(0) - end -} - -FileNameShortBlock = - utils.insert( - FileNameShortBlock, - FileIcon, - FileNameShort, - {provider = "%<"} -- this means that the statusline is cut here when there's not enough space -) - -local DefaultStatusline = { - ViMode, - Space, - FileNameBlock, - Space, - Diagnostics, - Align, - Ruler, - Space, - FileInfoBlock, - Space, - Git -} - -local SpecialStatusline = { - condition = function() - return conditions.buffer_matches( - { - buftype = {"nofile", "prompt", "help", "quickfix"}, - filetype = {"^git.*", "fugitive"} - } - ) - end, - FileType, - Space, - Align -} - -local TerminalStatusline = { - condition = function() - return conditions.buffer_matches({buftype = {"terminal"}}) - end, - TerminalName, - Align -} - -local StatusLines = { - fallthrough = false, - SpecialStatusline, - TerminalStatusline, - DefaultStatusline -} - -local GSpace = {provider = " ", hl = {bg = colors.bg}} - -local WinBars = { - fallthrough = false, - { - -- An inactive winbar for regular files - condition = function() - return conditions.buffer_matches({buftype = {"terminal"}}) and not conditions.is_active() - end, - utils.surround({"", ""}, colors.bright_bg, {hl = {fg = "gray", force = true}, GSpace, TerminalName, Align}) - }, - { - -- A special winbar for terminals - condition = function() - return conditions.buffer_matches({buftype = {"terminal"}}) - end, - utils.surround( - {"", ""}, - colors.dark_red, - { - GSpace, - TerminalName, - Align - } - ) - }, - { - -- An inactive winbar for regular files - condition = function() - return not conditions.is_active() - end, - utils.surround({"", ""}, colors.bright_bg, {hl = {fg = "gray", force = true}, GSpace, FileNameShortBlock, Align}) - }, - -- A winbar for regular files - { - GSpace, - FileNameShortBlock, - -- GSpace, - Align - } -} - -vim.api.nvim_create_autocmd( - "User", - { - pattern = "HeirlineInitWinbar", - callback = function(args) - local buf = args.buf - local buftype = vim.tbl_contains({"prompt", "nofile", "help", "quickfix"}, vim.bo[buf].buftype) - local filetype = vim.tbl_contains({"gitcommit", "fugitive"}, vim.bo[buf].filetype) - if buftype or filetype then - vim.opt_local.winbar = nil - end - end - } -) - --- we redefine the filename component, as we probably only want the tail and not the relative path -local TablineFileName = { - provider = function(self) - -- self.filename will be defined later, just keep looking at the example! - local filename = self.filename - filename = filename == "" and "[No Name]" or vim.fn.fnamemodify(filename, ":t") - return filename - end, - hl = function(self) - return {bold = self.is_active or self.is_visible, italic = true} - end -} - -local TablineFileFlags = { - { - provider = function(self) - if vim.bo[self.bufnr].modified then - return " [+]" - end - end, - hl = {fg = colors.green} - }, - { - provider = function(self) - if not vim.bo[self.bufnr].modifiable or vim.bo[self.bufnr].readonly then - return "" - end - end, - hl = {fg = "orange"} - } -} - -local TablineDiagnostics = { - static = { - error_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignError")[1].text, - warn_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text, - info_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text, - hint_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignHint")[1].text - }, - init = function(self) - self.errors = #vim.diagnostic.get(self.bufnr, {severity = vim.diagnostic.severity.ERROR}) - self.warnings = #vim.diagnostic.get(self.bufnr, {severity = vim.diagnostic.severity.WARN}) - self.hints = #vim.diagnostic.get(self.bufnr, {severity = vim.diagnostic.severity.HINT}) - self.info = #vim.diagnostic.get(self.bufnr, {severity = vim.diagnostic.severity.INFO}) - end, - { - provider = function(self) - return self.errors > 0 and (self.error_icon .. self.errors .. " ") - end, - hl = {fg = colors.diag.error} - }, - { - provider = function(self) - return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ") - end, - hl = {fg = colors.diag.warn} - }, - { - provider = function(self) - return self.info > 0 and (self.info_icon .. self.info .. " ") - end, - hl = {fg = colors.diag.info} - }, - { - provider = function(self) - return self.hints > 0 and (self.hint_icon .. self.hints) - end, - hl = {fg = colors.diag.hint} - } -} - -local TablineFileIcon = { - init = function(self) - local filename = self.filename - local extension = vim.fn.fnamemodify(filename, ":e") - self.icon, self.icon_color = require("nvim-web-devicons").get_icon_color(filename, extension, {default = true}) - end, - provider = function(self) - return self.icon and (" " .. self.icon .. " ") - end, - hl = function(self) - return {fg = self.icon_color} - end -} - --- Here the filename block finally comes together -local TablineFileNameBlock = { - init = function(self) - self.filename = vim.api.nvim_buf_get_name(self.bufnr) - end, - hl = function(self) - if self.is_active then - return "TabLineSel" - else - return "TabLine" - end - end, - on_click = { - callback = function(_, minwid, _, button) - if (button == "m") then -- close on mouse middle click - vim.api.nvim_buf_delete(minwid, {force = true}) - else - vim.api.nvim_win_set_buf(0, minwid) - end - end, - minwid = function(self) - return self.bufnr - end, - name = "heirline_tabline_buffer_callback" - }, - TablineFileIcon, - TablineFileName, - TablineFileFlags, - TablineDiagnostics -} - --- a nice "x" button to close the buffer -local TablineCloseButton = { - condition = function(self) - return not vim.bo[self.bufnr].modified - end, - {provider = " "}, - { - provider = "", - hl = {fg = "gray"}, - on_click = { - callback = function(_, minwid) - vim.api.nvim_buf_delete(minwid, {force = false}) + local ViMode = { + -- get vim current mode, this information will be required by the provider + -- and the highlight functions, so we compute it only once per component + -- evaluation and store it as a component attribute + init = function(self) + self.mode = vim.fn.mode(1) -- :h mode() end, - minwid = function(self) - return self.bufnr + -- Now we define some dictionaries to map the output of mode() to the + -- corresponding string and color. We can put these into `static` to compute + -- them at initialisation time. + static = { + mode_names = { + -- change the strings if you like it vvvvverbose! + ['n'] = 'NORMAL ', + ['no'] = 'N·OPERATOR PENDING ', + ['v'] = 'VISUAL ', + ['vs'] = 'VISUAL·S ', + ['V'] = 'V·LINE ', + ['Vs'] = 'V·LINE·S ', + [''] = 'V·BLOCK ', + ['s'] = 'SELECT ', + ['S'] = 'S·LINE ', + [''] = 'S·BLOCK ', + ['i'] = 'INSERT ', + ['ic'] = 'COMPLETION ', + ['niI'] = 'INSERT ', + ['niR'] = 'REPLACE ', + ['niV'] = 'V·REPLACE ', + ['R'] = 'REPLACE ', + ['Rv'] = 'V·REPLACE ', + ['c'] = 'COMMAND ', + ['cv'] = 'VIM EX ', + ['ce'] = 'EX ', + ['r'] = 'PROMPT ', + ['rm'] = 'MORE ', + ['r?'] = 'CONFIRM ', + ['!'] = 'SHELL ', + ['t'] = 'TERMINAL ', + }, + mode_colors = { + n = colors.green, + i = colors.magenta, + v = colors.blue, + V = colors.blue, + [''] = colors.blue, + c = colors.red, + s = colors.purple, + S = colors.purple, + [''] = colors.purple, + R = colors.orange, + r = colors.orange, + ['!'] = colors.red, + t = colors.red, + }, + }, + -- We can now access the value of mode() that, by now, would have been + -- computed by `init()` and use it to index our strings dictionary. + -- note how `static` fields become just regular attributes once the + -- component is instantiated. + -- To be extra meticulous, we can also add some vim statusline syntax to + -- control the padding and make sure our string is always at least 2 + -- characters long. Plus a nice Icon. + provider = function(self) + if self.mode == nil then + return '' + end + -- return ' %2(' .. self.mode .. '%)' + return ' %2(' .. self.mode_names[self.mode] .. '%)' + end, + -- Same goes for the highlight. Now the foreground will change according to the current mode. + hl = function(self) + local mode = self.mode:sub(1, 1) -- get only the first mode character + return { bg = self.mode_colors[mode], fg = colors.bg, bold = true } end, - name = "heirline_tabline_close_buffer_callback" } - } -} --- The final touch! -local TablineBufferBlock = - utils.surround( - {"", ""}, - function(self) - if self.is_active then - return utils.get_highlight("TabLineSel").bg - else - return utils.get_highlight("TabLine").bg - end - end, - {TablineFileNameBlock, TablineCloseButton} -) + local FileNameBlock = { + -- let's first set up some attributes needed by this component and it's children + init = function(self) + self.filename = vim.api.nvim_buf_get_name(0) + end, + } --- and here we go -local BufferLine = - utils.make_buflist( - TablineBufferBlock, - {provider = "", hl = {fg = "gray"}}, -- left truncation, optional (defaults to "<") - {provider = "", hl = {fg = "gray"}} -- right trunctation, also optional (defaults to ...... yep, ">") - -- by the way, open a lot of buffers and try clicking them ;) -) + local FileIcon = { + init = function(self) + local filename = self.filename + local extension = vim.fn.fnamemodify(filename, ':e') + self.icon, self.icon_color = require('nvim-web-devicons').get_icon_color(filename, extension, { default = true }) + end, + provider = function(self) + return self.icon and (self.icon .. ' ') + end, + hl = function(self) + return { fg = self.icon_color } + end, + } -local TabLineOffset = { - condition = function(self) - local win = vim.api.nvim_tabpage_list_wins(0)[1] - local bufnr = vim.api.nvim_win_get_buf(win) - self.winid = win + local FileName = { + provider = function(self) + -- first, trim the pattern relative to the current directory. For other + -- options, see :h filename-modifers + local filename = vim.fn.fnamemodify(self.filename, ':.') + if filename == '' then + return '[No Name]' + end + -- now, if the filename would occupy more than 1/4th of the available + -- space, we trim the file path to its initials + -- See Flexible Components section below for dynamic truncation + if not conditions.width_percent_below(#filename, 0.25) then + filename = vim.fn.pathshorten(filename) + end + return filename + end, + hl = { fg = utils.get_highlight('Directory').fg }, + } - if vim.bo[bufnr].filetype == "neo-tree" then - self.title = " NeoTree" - return true - -- elseif vim.bo[bufnr].filetype == "TagBar" then - -- ... - end - end, - provider = function(self) - local title = self.title - local width = vim.api.nvim_win_get_width(self.winid) - local pad = math.ceil((width - #title) / 2) - return string.rep(" ", pad) .. title .. string.rep(" ", pad) - end, - hl = function(self) - if vim.api.nvim_get_current_win() == self.winid then - return "TablineSel" - else - return "Tabline" - end - end -} + local FileFlags = { + { + provider = function() + if vim.bo.modified then + return ' [+]' + end + end, + hl = { fg = colors.green }, + }, + { + provider = function() + if (not vim.bo.modifiable) or vim.bo.readonly then + return '' + end + end, + hl = { fg = colors.orange }, + }, + } -local Tabpage = { - provider = function(self) - return "%" .. self.tabnr .. "T " .. self.tabnr .. " %T" - end, - hl = function(self) - if not self.is_active then - return "TabLine" - else - return "TabLineSel" - end - end -} + -- Change highlight when file has changes + local FileNameModifer = { + hl = function() + if vim.bo.modified then + -- use `force` because we need to override the child's hl foreground + return { fg = colors.cyan, bold = true, force = true } + end + end, + } -local TabpageClose = { - provider = "%999X  %X", - hl = "TabLine" -} + local diag_signs = vim.diagnostic.config().signs.text or {} + local Diagnostics = { + condition = conditions.has_diagnostics, + static = { + error_icon = diag_signs[1], + warn_icon = diag_signs[2], + info_icon = diag_signs[3], + hint_icon = diag_signs[4], + }, + init = function(self) + self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR }) + self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN }) + self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT }) + self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO }) + end, + { + provider = function(self) + -- 0 is just another output, we can decide to print it or not! + return self.errors > 0 and (self.error_icon .. self.errors .. ' ') + end, + hl = { fg = colors.error }, + }, + { + provider = function(self) + return self.warnings > 0 and (self.warn_icon .. self.warnings .. ' ') + end, + hl = { fg = colors.warning }, + }, + { + provider = function(self) + return self.info > 0 and (self.info_icon .. self.info .. ' ') + end, + hl = { fg = colors.info }, + }, + { + provider = function(self) + return self.hints > 0 and (self.hint_icon .. self.hints) + end, + hl = { fg = colors.hint }, + }, + } -local TabPages = { - -- only show this component if there's 2 or more tabpages - condition = function() - return #vim.api.nvim_list_tabpages() >= 2 - end, - {provider = "%="}, - utils.make_tablist(Tabpage), - TabpageClose -} + -- let's add the children to our FileNameBlock component + FileNameBlock = utils.insert(FileNameBlock, FileIcon, utils.insert(FileNameModifer, FileName), unpack(FileFlags), { provider = '%<' }) -local TabLine = {TabLineOffset, BufferLine, TabPages} + local Git = { + condition = conditions.is_git_repo, + init = function(self) + self.status_dict = vim.b.gitsigns_status_dict + self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0 + end, + hl = { fg = colors.orange, bg = colors.bg }, + { + provider = function(self) + return ' ' .. self.status_dict.head + end, + hl = { bold = true }, + }, + { + condition = function(self) + return self.has_changes + end, + provider = ' ', + }, + { + provider = function(self) + local count = self.status_dict.added or 0 + return count > 0 and ('  ' .. count) + end, + hl = { fg = colors.git.add }, + }, + { + provider = function(self) + local count = self.status_dict.removed or 0 + return count > 0 and ('  ' .. count) + end, + hl = { fg = colors.git.delete }, + }, + { + provider = function(self) + local count = self.status_dict.changed or 0 + return count > 0 and ('  ' .. count) + end, + hl = { fg = colors.git.change }, + }, + } --- require "heirline".setup(StatusLines, WinBars, TabLine) -require "heirline".setup( - { - statusline = StatusLines, - winbar = WinBars, - tabline = TabLine, - opts = { - disable_winbar_cb = function(args) + local FileType = { + provider = function() + return vim.bo.filetype + end, + hl = { fg = utils.get_highlight('Statusline').fg, bold = true }, + } + + local FileEncoding = { + provider = function() + local enc = (vim.bo.fenc ~= '' and vim.bo.fenc) or vim.o.enc -- :h 'enc' + return enc:upper() + end, + } + + local FileInfoBlock = { + init = function(self) + self.filename = vim.api.nvim_buf_get_name(0) + end, + } + + FileInfoBlock = utils.insert( + FileInfoBlock, + FileEncoding, + Space, + FileIcon, + FileType, + { provider = '%<' } -- this means that the statusline is cut here when there's not enough space + ) + + local FileNameShort = { + provider = function(self) + -- first, trim the pattern relative to the current directory. For other + -- options, see :h filename-modifers + local filename = vim.fn.fnamemodify(self.filename, ':t') + if filename == '' then + return '[No Name]' + end + return filename + end, + hl = { fg = colors.fg_dark }, + } + + local FileNameShortBlock = { + init = function(self) + self.filename = vim.api.nvim_buf_get_name(0) + end, + } + + FileNameShortBlock = utils.insert( + FileNameShortBlock, + FileIcon, + FileNameShort, + { provider = '%<' } -- this means that the statusline is cut here when there's not enough space + ) + + local TerminalName = { + -- we could add a condition to check that buftype == 'terminal' + -- or we could do that later (see #conditional-statuslines below) + provider = function() + local tname, _ = vim.api.nvim_buf_get_name(0):gsub('.*:', '') + return ' ' .. tname + end, + hl = { bold = true }, + } + + local Ruler = { + -- %l = current line number + -- %L = number of lines in the buffer + -- %c = column number + -- %P = percentage through file of displayed window + provider = '%7 %p%% %l,%c', + } + + local DefaultStatusline = { + ViMode, + Space, + FileNameBlock, + Space, + Diagnostics, + Align, + Ruler, + Space, + FileInfoBlock, + Space, + Git, + } + + local SpecialStatusline = { + condition = function() + return conditions.buffer_matches({ + buftype = { 'nofile', 'prompt', 'help', 'quickfix' }, + filetype = { '^git.*', 'fugitive' }, + }) + end, + FileType, + Space, + Align, + } + + local TerminalStatusline = { + condition = function() + return conditions.buffer_matches({ buftype = { 'terminal' } }) + end, + TerminalName, + Align, + } + + local StatusLines = { + fallthrough = false, + SpecialStatusline, + TerminalStatusline, + DefaultStatusline, + } + + local WinBars = { + fallthrough = false, + { + -- An inactive winbar for regular files + condition = function() + return conditions.buffer_matches({ buftype = { 'terminal' } }) and not conditions.is_active() + end, + { + hl = { bg = colors.bg_dark, fg = 'gray', force = true }, + SmallSpace, + TerminalName, + Align, + }, + }, + { + -- A special winbar for terminals + condition = function() + return conditions.buffer_matches({ buftype = { 'terminal' } }) + end, + { + hl = { bg = colors.bg_dark1, force = true }, + SmallSpace, + TerminalName, + Align, + }, + }, + { + -- An inactive winbar for regular files + condition = function() + return not conditions.is_active() + end, + { + hl = { bg = colors.bg_dark, fg = 'gray', force = true }, + SmallSpace, + FileNameShortBlock, + Align, + }, + }, + -- A winbar for regular files + { + hl = { bg = colors.bg_dark1, force = true }, + SmallSpace, + FileNameShortBlock, + Align, + }, + } + + vim.api.nvim_create_autocmd('User', { + pattern = 'HeirlineInitWinbar', + callback = function(args) local buf = args.buf - local buftype = vim.tbl_contains({"prompt", "nofile", "help", "quickfix"}, vim.bo[buf].buftype) - local filetype = vim.tbl_contains({"gitcommit", "fugitive", "Trouble", "packer"}, vim.bo[buf].filetype) - return buftype or filetype - end + local buftype = vim.tbl_contains({ 'prompt', 'nofile', 'help', 'quickfix' }, vim.bo[buf].buftype) + local filetype = vim.tbl_contains({ 'gitcommit', 'fugitive' }, vim.bo[buf].filetype) + if buftype or filetype then + vim.opt_local.winbar = nil + end + end, + }) + + local TablineOffset = { + condition = function(self) + local win = vim.api.nvim_tabpage_list_wins(0)[1] + local bufnr = vim.api.nvim_win_get_buf(win) + self.winid = win + + if vim.bo[bufnr].filetype == 'neo-tree' then + self.title = ' NeoTree' + return true + end + end, + provider = function(self) + local title = self.title + local width = vim.api.nvim_win_get_width(self.winid) + 2 + local padLeft = math.ceil((width - #title) / 2) + local padRight = width - #title - padLeft + return string.rep(' ', padLeft) .. title .. string.rep(' ', padRight) .. '▐' + end, + hl = function(self) + if vim.api.nvim_get_current_win() == self.winid then + return 'TablineSel' + else + return 'Tabline' + end + end, } - } -) -vim.o.showtabline = 2 -vim.cmd([[au FileType * if index(['wipe', 'delete', 'unload'], &bufhidden) >= 0 | set nobuflisted | endif]]) + local Tabpage = { + provider = function(self) + return '%' .. self.tabnr .. 'T ' .. self.tabnr .. ' %T' + end, + hl = function(self) + if not self.is_active then + return 'TabLine' + else + return 'TabLineSel' + end + end, + } -vim.api.nvim_create_augroup("Heirline", {clear = true}) -vim.api.nvim_create_autocmd( - "ColorScheme", - { - callback = function() - local colors = setup_colors() - utils.on_colorscheme(colors) - end, - group = "Heirline" - } -) + local TabpageClose = { + provider = '%999X  %X', + hl = 'TabLine', + } -local function get_bufs() - return vim.tbl_filter( - function(bufnr) - return vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].buflisted - end, - vim.api.nvim_list_bufs() - ) -end + local TabPages = { + -- only show this component if there's 2 or more tabpages + condition = function() + return #vim.api.nvim_list_tabpages() >= 2 + end, + { provider = '%=' }, + utils.make_tablist(Tabpage), + TabpageClose, + } -local function goto_buf(index) - local bufs = get_bufs() - if index > #bufs then - index = #bufs - end - vim.api.nvim_win_set_buf(0, bufs[index]) -end + local BufferLine = require('plugins.heirline-tabline') -local function addKey(key, index) - vim.keymap.set( - "", - "", - function() - goto_buf(index) - end, - {noremap = true, silent = true} - ) -end + local Tabline = { TablineOffset, BufferLine, TabPages } -for i = 1, 9 do - addKey(i, i) -end -addKey("0", 10) + require('heirline').setup({ + statusline = StatusLines, + winbar = WinBars, + tabline = Tabline, + opts = { + disable_winbar_cb = function(args) + local buf = args.buf + local buftype = vim.tbl_contains({ 'prompt', 'nofile', 'help', 'quickfix' }, vim.bo[buf].buftype) + local filetype = vim.tbl_contains({ 'gitcommit', 'fugitive', 'Trouble', 'packer', 'markdown' }, vim.bo[buf].filetype) + return buftype or filetype + end, + }, + }) + + local function goto_buf(index) + local bufs = vim.tbl_filter(function(bufnr) + return vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].buflisted + end, vim.api.nvim_list_bufs()) + if index > #bufs then + index = #bufs + end + vim.api.nvim_win_set_buf(0, bufs[index]) + end + + local function addKey(key, index) + vim.keymap.set('', '', function() + goto_buf(index) + end, { noremap = true, silent = true }) + end + + for i = 1, 9 do + addKey(i, i) + end + addKey('0', 10) + end, +} diff --git a/lua/plugins/icons.lua b/lua/plugins/icons.lua deleted file mode 100644 index f981702..0000000 --- a/lua/plugins/icons.lua +++ /dev/null @@ -1,52 +0,0 @@ -require("nvim-web-devicons").set_icon { - ["test.ts"] = { - icon = "", - color = "#519aba", - name = "TsTest" - }, - ["test.tsx"] = { - icon = "", - color = "#519aba", - name = "TsTest" - }, - ["test.js"] = { - icon = "", - color = "#cbcb41", - name = "JsTest" - }, - ["test.jsx"] = { - icon = "", - color = "#cbcb41", - name = "JsTest" - }, - ["readme.md"] = { - icon = "", - color = "#42A5F5", - name = "Readme" - }, - ["package.json"] = { - icon = "󰎙", - color = "#8BC34A", - name = "PackageJson" - }, - ["package-lock.json"] = { - icon = "󰎙", - color = "#8BC34A", - name = "PackageJson" - }, - ["tsconfig.json"] = { - icon = "", - color = "#0288D1", - name = "TsConfig" - }, - ["prisma"] = { - icon = "", - color = "#FFFFFF", - name = "Prisma" - }, - ["jar"] = { - icon = "", - color = "#FFFFFF", - name = "Jar" - } -} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index d6dcd79..c9cb632 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,285 +1,155 @@ -local util = require "lspconfig.util" - -vim.fn.sign_define("DiagnosticSignError", {text = " ", texthl = "DiagnosticSignError"}) -vim.fn.sign_define("DiagnosticSignWarn", {text = " ", texthl = "DiagnosticSignWarn"}) -vim.fn.sign_define("DiagnosticSignInfo", {text = " ", texthl = "DiagnosticSignInfo"}) -vim.fn.sign_define("DiagnosticSignHint", {text = " ", texthl = "DiagnosticSignHint"}) -vim.fn.sign_define("DapBreakpoint", {text = " ", texthl = "DiagnosticSignError"}) -vim.fn.sign_define("DapStopped", {text = " ", texthl = "DiagnosticSignInfo"}) - --- vim.ui.select = require "popui.ui-overrider" -vim.ui.input = require "popui.input-overrider" - --- common servers -local common_servers = { - "pyright", - "bashls", - "clangd", - "cssls", - "texlab", - "prismals", - "solidity", - "zls", - -- "gleam", - "intelephense", - "lua_ls", - "html", - "vimls", - "yamlls", - "ocamllsp" -} -local extra_servers = { - "vtsls", - "eslint", - "jsonls", - "rust_analyzer", - "tailwindcss" -} - --- Ensure that required tools are installed -require("mason").setup() -require("mason-lspconfig").setup( - { - ensure_installed = vim.tbl_extend("force", common_servers, extra_servers) - } -) -require("mason-null-ls").setup( - { - ensure_installed = {"cspell"} - } -) - ---- Completion Icons -require("lspkind").init({}) - ---- Null-LS - -local cspell = require("cspell") -require("null-ls").setup( - { - sources = { - cspell.code_actions, - cspell.diagnostics.with( - { - diagnostics_postprocess = function(diagnostic) - diagnostic.severity = vim.diagnostic.severity["WARN"] - end - } - ) - -- require("typescript.extensions.null-ls.code-actions") - } - } -) - --- local lsp = require "lspconfig" --- vim.lsp.start( --- { --- cmd = {"bun", "/home/gordon/git/lsp/index.ts", "--stdio"}, --- filetypes = {"typescript"}, --- name = "blacklist", --- root_dir = vim.fn.getcwd() --- } --- ) - ---- Languages -local nvim_lsp = require("lspconfig") - -local function codeAction() - -- if vim.bo.filetype == "cs" then - vim.lsp.buf.code_action() - -- else - -- vim.cmd [[CodeActionMenu]] - -- end -end - --- Mappings. -local opts = {noremap = true, silent = true} -vim.api.nvim_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) -vim.api.nvim_set_keymap("n", "gs", "VtsExec goto_source_definition", opts) -vim.api.nvim_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) -vim.api.nvim_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", opts) -vim.api.nvim_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", opts) -vim.api.nvim_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) -vim.api.nvim_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) --- buf_set_keymap("n", "t", "lua vim.lsp.buf.type_definition()", opts) -vim.api.nvim_set_keymap("n", "", "lua vim.lsp.buf.rename()", opts) --- vim.api.nvim_set_keymap("n", "a", "CodeActionMenu", opts) -vim.keymap.set("n", "a", codeAction, opts) -vim.keymap.set("v", "a", codeAction, opts) - --- vim.keymap.set("n", "a", 'lua require("fastaction").code_action()', {buffer = bufnr}) --- vim.keymap.set("v", "a", "lua require('fastaction').range_code_action()", {buffer = bufnr}) - -vim.api.nvim_set_keymap("n", "d", "lua vim.diagnostic.open_float()", opts) -vim.api.nvim_set_keymap("n", "[d", "lua vim.diagnostic.goto_prev()", opts) -vim.api.nvim_set_keymap("n", "]d", "lua vim.diagnostic.goto_next()", opts) -vim.api.nvim_set_keymap("n", "q", "lua vim.diagnostic.set_loclist()", opts) -local on_attach = function(client, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufnr, ...) - end -end --- local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) -local capabilities = require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) - -require "lspconfig".jsonls.setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150 - }, - settings = { - json = require "json-schema" - }, - capabilities = capabilities -} - -require("lspconfig.configs").vtsls = require("vtsls").lspconfig - -require("lspconfig").vtsls.setup( - { - capabilities = capabilities, - on_attach = on_attach, - settings = { - vtsls = { - autoUseWorkspaceTsdk = true - } - } - } -) - -require "lspconfig".eslint.setup { - on_attach = on_attach, - root_dir = util.root_pattern( - ".eslintrc", - ".eslintrc.js", - ".eslintrc.cjs", - ".eslintrc.yaml", - ".eslintrc.yml", - ".eslintrc.json", - "eslint.config.js", - "eslint.config.mjs", - "eslint.config.cjs", - "eslint.config.yaml", - "eslint.config.yml", - "eslint.config.json", - "eslint.config.ts" - ), - handlers = { - ["eslint/openDoc"] = function(_, result) - if not result then - return - end - print(result.url) - return {} - end - }, - capabilities = capabilities -} - -require "lspconfig".gdshader_lsp.setup {} -require "lspconfig".gdscript.setup {} - ---[[ require "lspconfig".java_language_server.setup { - on_attach = on_attach, - cmd = {"java-language-server"} -} ]] -for _, lsp in ipairs(common_servers) do - nvim_lsp[lsp].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150 - }, - capabilities = capabilities - } -end - -local path = vim.uv.cwd() -local config_path = path .. "/.vscode/settings.json" -local tailwindcss_settings = { - tailwindCSS = { - experimental = { - classRegex = { - {"cva\\(([^)]*)\\)", '["\'`]([^"\'`]*).*?["\'`]'}, - {"cx\\(([^)]*)\\)", '(?:\'|"|`)([^\']*)(?:\'|"|`)'}, - {"cn\\(([^)]*)\\)", '["\'`]([^"\'`]*).*?["\'`]'}, - {"([a-zA-Z0-9\\-:]+)"} - } - } - } -} --- local function patch_tailwindcss_settings() --- if vim.uv.fs_stat(config_path) then --- local file = vim.fn.readfile(config_path) --- local vscode_settings = vim.fn.json_decode(file) --- tailwindcss_settings = --- vim.tbl_deep_extend( --- "force", --- tailwindcss_settings, --- { --- tailwindCSS = { --- rootFontSize = vscode_settings["tailwindCSS.rootFontSize"] --- } --- } --- ) --- end --- end --- pcall(patch_tailwindcss_settings) -nvim_lsp.tailwindcss.setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150 - }, - capabilities = capabilities, - -- settings = tailwindcss_settings - settings = { - tailwindCSS = { - experimental = { - classRegex = { - {"cva\\(([^)]*)\\)", '["\'`]([^"\'`]*).*?["\'`]'}, - {"cx\\(([^)]*)\\)", '(?:\'|"|`)([^\']*)(?:\'|"|`)'}, - {"cn\\(([^)]*)\\)", '(?:\'|"|`)([^\']*)(?:\'|"|`)'} - } - } - } - } -} - -require("roslyn").setup( - { - config = {}, - exe = { - "dotnet", - vim.fs.joinpath(vim.fn.stdpath("data"), "roslyn", "Microsoft.CodeAnalysis.LanguageServer.dll") - }, - filewatching = true - } -) - -nvim_lsp.rust_analyzer.setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150 - }, - capabilities = capabilities, - settings = { - ["rust-analyzer"] = { - imports = { - granularity = { - group = "module" +return { + 'neovim/nvim-lspconfig', + dependencies = { + { 'mason-org/mason.nvim', opts = {} }, + 'mason-org/mason-lspconfig.nvim', + { 'j-hui/fidget.nvim', opts = { + notification = { + window = { + winblend = 0, }, - prefix = "crate" }, - cargo = { - buildScripts = { - enable = true - } + } }, + 'saghen/blink.cmp', + 'WhoIsSethDaniel/mason-tool-installer.nvim', + 'b0o/schemastore.nvim', + }, + config = function() + vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }), + callback = function(event) + local map = function(keys, func, desc, mode) + mode = mode or 'n' + vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc }) + end + + -- map('a', vim.lsp.buf.code_action, 'Code Action', { 'n', 'x', 'v' }) + + map('gr', require('telescope.builtin').lsp_references, 'Goto References') + + map('gi', require('telescope.builtin').lsp_implementations, 'Goto Implementation') + + map('gd', require('telescope.builtin').lsp_definitions, 'Goto Definition') + + map('fs', require('telescope.builtin').lsp_dynamic_workspace_symbols, 'Open Workspace Symbols') + + map('d', vim.diagnostic.open_float, 'Show Diagnostics') + map('D', function() + vim.diagnostic.jump({ count = 1, float = true }) + end, 'Next Diagnostics') + + -- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10) + ---@param client vim.lsp.Client + ---@param method vim.lsp.protocol.Method + ---@param bufnr? integer some lsp support methods only in specific files + ---@return boolean + local function client_supports_method(client, method, bufnr) + if vim.fn.has('nvim-0.11') == 1 then + return client:supports_method(method, bufnr) + else + return client.supports_method(method, { bufnr = bufnr }) + end + end + + -- The following two autocommands are used to highlight references of the + -- word under your cursor when your cursor rests there for a little while. + -- See `:help CursorHold` for information about when this is executed + -- + -- When you move your cursor, the highlights will be cleared (the second autocommand). + local client = vim.lsp.get_client_by_id(event.data.client_id) + if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then + local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false }) + vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { + buffer = event.buf, + group = highlight_augroup, + callback = vim.lsp.buf.document_highlight, + }) + + vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { + buffer = event.buf, + group = highlight_augroup, + callback = vim.lsp.buf.clear_references, + }) + + vim.api.nvim_create_autocmd('LspDetach', { + group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }), + callback = function(event2) + vim.lsp.buf.clear_references() + vim.api.nvim_clear_autocmds({ group = 'kickstart-lsp-highlight', buffer = event2.buf }) + end, + }) + end + + -- The following code creates a keymap to toggle inlay hints in your + -- code, if the language server you are using supports them + -- + -- This may be unwanted, since they displace some of your code + if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then + map('th', function() + vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf })) + end, '[T]oggle Inlay [H]ints') + end + end, + }) + + local servers = { + lua_ls = { + settings = { + Lua = { + runtime = { + version = 'LuaJIT', + path = { + 'lua/?.lua', + 'lua/?/init.lua', + }, + }, + -- Make the server aware of Neovim runtime files + workspace = { + checkThirdParty = false, + library = vim.api.nvim_get_runtime_file('', true), + }, + }, + }, }, - procMacro = { - enable = true - } + bashls = {}, + zls = {}, + cssls = {}, + prismals = {}, + intelephense = {}, + html = {}, + yamlls = {}, + eslint = {}, + tailwindcss = {}, + vtsls = { + settings = { + vtsls = { autoUseWorkspaceTsdk = true }, + }, + }, + jsonls = { + settings = { + json = { + schemas = require('schemastore').json.schemas(), + validate = { enable = true }, + }, + }, + }, + gopls = {}, } - } + local ensure_installed = vim.tbl_keys(servers or {}) + vim.list_extend(ensure_installed, { + 'stylua', + 'prettierd', + 'php-cs-fixer', + 'cspell', + }) + + local capabilities = require('blink.cmp').get_lsp_capabilities() + + require('mason-tool-installer').setup({ ensure_installed = ensure_installed }) + for server_name, server in pairs(servers) do + server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) + vim.lsp.config(server_name, server) + vim.lsp.enable(server_name) + end + end, } diff --git a/lua/plugins/lspsaga.lua b/lua/plugins/lspsaga.lua new file mode 100644 index 0000000..9ef3421 --- /dev/null +++ b/lua/plugins/lspsaga.lua @@ -0,0 +1,33 @@ +return { + 'nvimdev/lspsaga.nvim', + config = function() + require('lspsaga').setup({ + symbol_in_winbar = { + enable = false, + }, + lightbulb = { + enable = false, + }, + beacon = { + enable = false, + }, + rename = { + keys = { + quit = '', + }, + }, + code_action = { + keys = { + quit = '', + }, + }, + }) + vim.keymap.set('', 'a', 'Lspsaga code_action') + vim.keymap.set('n', 'K', 'Lspsaga hover_doc') + vim.keymap.set('n', '', 'Lspsaga rename') + end, + dependencies = { + 'nvim-treesitter/nvim-treesitter', -- optional + 'nvim-tree/nvim-web-devicons', -- optional + }, +} diff --git a/lua/plugins/neo-tree.lua b/lua/plugins/neo-tree.lua index 341d540..700b850 100644 --- a/lua/plugins/neo-tree.lua +++ b/lua/plugins/neo-tree.lua @@ -1,268 +1,260 @@ -vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]]) -vim.api.nvim_set_keymap("", "", ":Neotree reveal", {silent = true}) --- require "window-picker".setup() -require "window-picker".setup( - { - autoselect_one = true, - include_current = false, - filter_rules = { - -- filter using buffer options - bo = { - -- if the file type is one of following, the window will be ignored - filetype = {"neo-tree", "neo-tree-popup", "notify"}, - -- if the buffer type is one of following, the window will be ignored - buftype = {"terminal", "quickfix"} - } - }, - selection_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", - highlights = { - statusline = { - focused = { - bg = "#519aba" +return { + 'nvim-neo-tree/neo-tree.nvim', + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended + 'MunifTanjim/nui.nvim', + 's1n7ax/nvim-window-picker', + }, + lazy = false, -- neo-tree will lazily load itself + opts = {}, + config = function() + vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]]) + vim.api.nvim_set_keymap('', '', ':Neotree reveal', { silent = true }) + require('window-picker').setup({ + autoselect_one = true, + include_current = false, + filter_rules = { + bo = { + filetype = { 'neo-tree', 'neo-tree-popup', 'notify' }, + buftype = { 'terminal', 'quickfix' }, }, - unfocused = { - bg = "#519aba" - } }, - winbar = { - focused = { - bg = "#519aba" + selection_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + highlights = { + statusline = { + focused = { + bg = '#519aba', + }, + unfocused = { + bg = '#519aba', + }, }, - unfocused = { - bg = "#519aba" - } - } - } - -- other_win_hl_color = "#519aba" - } -) + winbar = { + focused = { + bg = '#519aba', + }, + unfocused = { + bg = '#519aba', + }, + }, + }, + }) -require("neo-tree").setup( - { - default_component_configs = { - icon = { - folder_empty = "󰜌", - folder_empty_open = "󰜌" + require('neo-tree').setup({ + default_component_configs = { + icon = { + folder_empty = '󰜌', + folder_empty_open = '󰜌', + }, + git_status = { + symbols = { + renamed = '󰁕', + unstaged = '󰄱', + }, + }, + }, + document_symbols = { + kinds = { + File = { icon = '󰈙', hl = 'Tag' }, + Namespace = { icon = '󰌗', hl = 'Include' }, + Package = { icon = '󰏖', hl = 'Label' }, + Class = { icon = '󰌗', hl = 'Include' }, + Property = { icon = '󰆧', hl = '@property' }, + Enum = { icon = '󰒻', hl = '@number' }, + Function = { icon = '󰊕', hl = 'Function' }, + String = { icon = '󰀬', hl = 'String' }, + Number = { icon = '󰎠', hl = 'Number' }, + Array = { icon = '󰅪', hl = 'Type' }, + Object = { icon = '󰅩', hl = 'Type' }, + Key = { icon = '󰌋', hl = '' }, + Struct = { icon = '󰌗', hl = 'Type' }, + Operator = { icon = '󰆕', hl = 'Operator' }, + TypeParameter = { icon = '󰊄', hl = 'Type' }, + StaticMethod = { icon = '󰠄 ', hl = 'Function' }, + }, + }, + close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab + popup_border_style = 'rounded', + enable_git_status = true, + enable_diagnostics = false, + sort_case_insensitive = false, + sort_function = nil, + default_component_configs = { + container = { + enable_character_fade = true, + }, + indent = { + indent_size = 2, + padding = 1, -- extra padding on left hand side + -- indent guides + with_markers = true, + indent_marker = '│', + last_indent_marker = '└', + highlight = 'NeoTreeIndentMarker', + -- expander config, needed for nesting files + with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders + expander_collapsed = '', + expander_expanded = '', + expander_highlight = 'NeoTreeExpander', + }, + icon = { + folder_closed = '', + folder_open = '', + folder_empty = '', + default = '', + highlight = 'NeoTreeFileIcon', + }, + modified = { + symbol = '[+]', + highlight = 'NeoTreeGitAdded', + }, + name = { + trailing_slash = false, + use_git_status_colors = true, + highlight = 'NeoTreeFileName', + }, + git_status = { + symbols = { + added = '', + modified = '', + deleted = '✖', + renamed = '󰁕', + untracked = '', + ignored = '', + unstaged = '', + staged = '', + conflict = '', + }, + }, + }, + window = { + position = 'left', + width = 35, + mapping_options = { + noremap = true, + nowait = true, + }, + mappings = { + [''] = { + 'toggle_node', + nowait = false, + }, + [''] = 'revert_preview', + ['P'] = { 'toggle_preview', config = { use_float = true } }, + ['s'] = 'split_with_window_picker', + ['v'] = 'vsplit_with_window_picker', + ['t'] = 'open_tabnew', + [''] = 'open_with_window_picker', + ['<2-LeftMouse>'] = 'open_with_window_picker', + ['C'] = 'close_node', + ['z'] = 'close_all_nodes', + ['a'] = { + 'add', + config = { + show_path = 'absolute', + }, + }, + ['d'] = 'delete', + ['r'] = 'rename', + ['y'] = 'copy_to_clipboard', + ['x'] = 'cut_to_clipboard', + ['p'] = 'paste_from_clipboard', + ['c'] = 'copy', + ['m'] = { + 'move', + config = { + show_path = 'absolute', + }, + }, + ['q'] = 'close_window', + ['R'] = 'refresh', + ['?'] = 'show_help', + ['>'] = 'prev_source', + ['<'] = 'next_source', + }, + }, + nesting_rules = {}, + filesystem = { + filtered_items = { + visible = false, -- when true, they will just be displayed differently than normal items + hide_dotfiles = false, + hide_gitignored = true, + hide_by_name = { '.git' }, + hide_by_pattern = {}, + always_show = { 'node_modules' }, + never_show = {}, + never_show_by_pattern = {}, + }, + follow_current_file = { enabled = false }, -- This will find and focus the file in the active buffer every + -- time the current file is changed while the tree is open. + group_empty_dirs = false, -- when true, empty folders will be grouped together + hijack_netrw_behavior = 'open_default', -- netrw disabled, opening a directory opens neo-tree + -- in whatever position is specified in window.position + -- "open_current", -- netrw disabled, opening a directory opens within the + -- window like netrw would, regardless of window.position + -- "disabled", -- netrw left alone, neo-tree does not handle opening dirs + use_libuv_file_watcher = true, -- This will use the OS level file watchers to detect changes + -- instead of relying on nvim autocmd events. + window = { + mappings = { + [''] = 'navigate_up', + ['.'] = 'set_root', + ['H'] = 'toggle_hidden', + ['/'] = 'fuzzy_finder', + ['D'] = 'fuzzy_finder_directory', + ['f'] = 'filter_on_submit', + [''] = 'clear_filter', + ['[g'] = 'prev_git_modified', + [']g'] = 'next_git_modified', + }, + }, + }, + buffers = { + follow_current_file = { enabled = true }, -- This will find and focus the file in the active buffer every + -- time the current file is changed while the tree is open. + group_empty_dirs = true, -- when true, empty folders will be grouped together + show_unloaded = true, + window = { + mappings = { + ['d'] = 'buffer_delete', + [''] = 'navigate_up', + ['.'] = 'set_root', + }, + }, }, git_status = { - symbols = { - renamed = "󰁕", - unstaged = "󰄱" - } - } - }, - document_symbols = { - kinds = { - File = {icon = "󰈙", hl = "Tag"}, - Namespace = {icon = "󰌗", hl = "Include"}, - Package = {icon = "󰏖", hl = "Label"}, - Class = {icon = "󰌗", hl = "Include"}, - Property = {icon = "󰆧", hl = "@property"}, - Enum = {icon = "󰒻", hl = "@number"}, - Function = {icon = "󰊕", hl = "Function"}, - String = {icon = "󰀬", hl = "String"}, - Number = {icon = "󰎠", hl = "Number"}, - Array = {icon = "󰅪", hl = "Type"}, - Object = {icon = "󰅩", hl = "Type"}, - Key = {icon = "󰌋", hl = ""}, - Struct = {icon = "󰌗", hl = "Type"}, - Operator = {icon = "󰆕", hl = "Operator"}, - TypeParameter = {icon = "󰊄", hl = "Type"}, - StaticMethod = {icon = "󰠄 ", hl = "Function"} - } - }, - close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab - popup_border_style = "rounded", - enable_git_status = true, - enable_diagnostics = false, - sort_case_insensitive = false, -- used when sorting files and directories in the tree - sort_function = nil, -- use a custom function for sorting files and directories in the tree - -- sort_function = function (a,b) - -- if a.type == b.type then - -- return a.path > b.path - -- else - -- return a.type > b.type - -- end - -- end , -- this sorts files and directories descendantly - default_component_configs = { - container = { - enable_character_fade = true - }, - indent = { - indent_size = 2, - padding = 1, -- extra padding on left hand side - -- indent guides - with_markers = true, - indent_marker = "│", - last_indent_marker = "└", - highlight = "NeoTreeIndentMarker", - -- expander config, needed for nesting files - with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders - expander_collapsed = "", - expander_expanded = "", - expander_highlight = "NeoTreeExpander" - }, - icon = { - folder_closed = "", - folder_open = "", - folder_empty = "", - default = "", - highlight = "NeoTreeFileIcon" - }, - modified = { - symbol = "[+]", - highlight = "NeoTreeGitAdded" - }, - name = { - trailing_slash = false, - use_git_status_colors = true, - highlight = "NeoTreeFileName" - }, - git_status = { - symbols = { - -- Change type - added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name - modified = "", -- or "", but this is redundant info if you use git_status_colors on the name - deleted = "✖", - -- this can only be used in the git_status source - renamed = "󰁕", - -- this can only be used in the git_status source - -- Status type - untracked = "", - ignored = "", - unstaged = "", - staged = "", - conflict = "" - } - } - }, - window = { - position = "left", - width = 35, - mapping_options = { - noremap = true, - nowait = true - }, - mappings = { - [""] = { - "toggle_node", - nowait = false + window = { + position = 'float', + mappings = { + ['gA'] = 'git_add_all', + ['gu'] = 'git_unstage_file', + ['ga'] = 'git_add_file', + ['gr'] = 'git_revert_file', + ['gc'] = 'git_commit', + ['gp'] = 'git_push', + ['gg'] = 'git_commit_and_push', + }, }, - [""] = "revert_preview", - ["P"] = {"toggle_preview", config = {use_float = true}}, - ["s"] = "split_with_window_picker", - ["v"] = "vsplit_with_window_picker", - ["t"] = "open_tabnew", - [""] = "open_with_window_picker", - ["<2-LeftMouse>"] = "open_with_window_picker", - ["C"] = "close_node", - ["z"] = "close_all_nodes", - ["a"] = { - "add", - config = { - show_path = "absolute" - } - }, - ["d"] = "delete", - ["r"] = "rename", - ["y"] = "copy_to_clipboard", - ["x"] = "cut_to_clipboard", - ["p"] = "paste_from_clipboard", - ["c"] = "copy", - ["m"] = { - "move", - config = { - show_path = "absolute" - } - }, - ["q"] = "close_window", - ["R"] = "refresh", - ["?"] = "show_help", - [">"] = "prev_source", - ["<"] = "next_source" - } - }, - nesting_rules = {}, - filesystem = { - filtered_items = { - visible = false, -- when true, they will just be displayed differently than normal items - hide_dotfiles = false, - hide_gitignored = true, - hide_by_name = {".git"}, - hide_by_pattern = {}, - always_show = {"node_modules"}, - never_show = {}, - never_show_by_pattern = {} }, - follow_current_file = {enabled = false}, -- This will find and focus the file in the active buffer every - -- time the current file is changed while the tree is open. - group_empty_dirs = false, -- when true, empty folders will be grouped together - hijack_netrw_behavior = "open_default", -- netrw disabled, opening a directory opens neo-tree - -- in whatever position is specified in window.position - -- "open_current", -- netrw disabled, opening a directory opens within the - -- window like netrw would, regardless of window.position - -- "disabled", -- netrw left alone, neo-tree does not handle opening dirs - use_libuv_file_watcher = true, -- This will use the OS level file watchers to detect changes - -- instead of relying on nvim autocmd events. - window = { - mappings = { - [""] = "navigate_up", - ["."] = "set_root", - ["H"] = "toggle_hidden", - ["/"] = "fuzzy_finder", - ["D"] = "fuzzy_finder_directory", - ["f"] = "filter_on_submit", - [""] = "clear_filter", - ["[g"] = "prev_git_modified", - ["]g"] = "next_git_modified" - } - } - }, - buffers = { - follow_current_file = {enabled = true}, -- This will find and focus the file in the active buffer every - -- time the current file is changed while the tree is open. - group_empty_dirs = true, -- when true, empty folders will be grouped together - show_unloaded = true, - window = { - mappings = { - ["d"] = "buffer_delete", - [""] = "navigate_up", - ["."] = "set_root" - } - } - }, - git_status = { - window = { - position = "float", - mappings = { - ["gA"] = "git_add_all", - ["gu"] = "git_unstage_file", - ["ga"] = "git_add_file", - ["gr"] = "git_revert_file", - ["gc"] = "git_commit", - ["gp"] = "git_push", - ["gg"] = "git_commit_and_push" - } - } - }, - source_selector = { - winbar = true, - statusline = false, - sources = { - -- table - { - source = "filesystem", -- string - display_name = " 󰉓 Files" -- string | nil + source_selector = { + winbar = true, + statusline = false, + sources = { + { + source = 'filesystem', + display_name = ' 󰉓 Files', + }, + { + source = 'document_symbols', + display_name = ' 󰈙 Symbols', + }, + { + source = 'git_status', + display_name = ' 󰊢 Git', + }, }, - { - source = "buffers", -- string - display_name = " 󰈙 Buffers" -- string | nil - }, - { - source = "git_status", -- string - display_name = " 󰊢 Git" -- string | nil - } - } - } - } -) + }, + }) + end, +} diff --git a/lua/plugins/neotest.lua b/lua/plugins/neotest.lua deleted file mode 100644 index ed1825b..0000000 --- a/lua/plugins/neotest.lua +++ /dev/null @@ -1,34 +0,0 @@ -require("neotest").setup( - { - adapters = { - require("neotest-jest")( - { - jestCommand = "npx jest --bail --ci", - env = { - NODE_OPTIONS = "--no-deprecation" - } - } - ), - require("neotest-zig") - }, - icons = { - passed = "🌈", - skipped = "🌙", - failed = "⛈️", - running = "☀️" - }, - highlights = { - passed = "DiagnosticSignSuccess", - skipped = "DiagnosticSignInfo", - failed = "DiagnosticSignError", - running = "DiagnosticSignWarn" - } - } -) - -local keymap = vim.api.nvim_set_keymap - -keymap("n", "tf", ':lua require("neotest").run.run(vim.fn.expand("%"))', {silent = true, noremap = true}) -keymap("n", "tn", ':lua require("neotest").run.run()', {silent = true}) -keymap("n", "tr", ':lua require("neotest").run.run()', {silent = true}) -keymap("n", "td", ':lua require("neotest").output.open({enter=true,short=true})', {silent = true}) diff --git a/lua/plugins/none-ls.lua b/lua/plugins/none-ls.lua new file mode 100644 index 0000000..5c84a45 --- /dev/null +++ b/lua/plugins/none-ls.lua @@ -0,0 +1,20 @@ +return { + { + 'nvimtools/none-ls.nvim', + event = 'VeryLazy', + dependencies = { 'davidmh/cspell.nvim' }, + opts = function(_, opts) + local cspell = require('cspell') + opts.sources = opts.sources or {} + table.insert( + opts.sources, + cspell.diagnostics.with({ + diagnostics_postprocess = function(diagnostic) + diagnostic.severity = vim.diagnostic.severity.WARN + end, + }) + ) + table.insert(opts.sources, cspell.code_actions) + end, + }, +} diff --git a/lua/plugins/nvim-tree.lua b/lua/plugins/nvim-tree.lua deleted file mode 100644 index ad942c8..0000000 --- a/lua/plugins/nvim-tree.lua +++ /dev/null @@ -1,107 +0,0 @@ --- vim.g.nvim_tree_indent_markers = 1 --- vim.api.nvim_set_keymap("", "", ":NvimTreeFindFile:NvimTreeFocus", {silent = true}) - -vim.cmd [[ -autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif -autocmd BufRead,BufNewFile NvimTree_1 lua vim.diagnostic.disable() -]] - -local tree_cb = require "nvim-tree.config".nvim_tree_callback --- default mappings -require "nvim-tree".setup( - { - auto_reload_on_write = true, - reload_on_bufenter = true, - git = { - enable = true, - ignore = false, - timeout = 500 - }, - filters = { - dotfiles = false, - custom = { - ".git", - ".webpack", - "\\.out", - ".cache" - } - }, - view = { - mappings = { - custom_only = true, - list = { - {key = {"", "o", "<2-LeftMouse>"}, cb = tree_cb("edit")}, - {key = {"<2-RightMouse>", ""}, cb = tree_cb("cd")}, - {key = "", cb = tree_cb("vsplit")}, - {key = "", cb = tree_cb("split")}, - {key = "t", cb = tree_cb("tabnew")}, - {key = "<", cb = tree_cb("prev_sibling")}, - {key = ">", cb = tree_cb("next_sibling")}, - {key = "P", cb = tree_cb("parent_node")}, - {key = "", cb = tree_cb("close_node")}, - {key = "", cb = tree_cb("close_node")}, - {key = "", cb = tree_cb("preview")}, - {key = "K", cb = tree_cb("first_sibling")}, - {key = "J", cb = tree_cb("last_sibling")}, - {key = "I", cb = tree_cb("toggle_ignored")}, - {key = "I", cb = tree_cb("toggle_dotfiles")}, - {key = "r", cb = tree_cb("refresh")}, - {key = "a", cb = tree_cb("create")}, - {key = "d", cb = tree_cb("remove")}, - {key = "m", cb = tree_cb("rename")}, - {key = "", cb = tree_cb("full_rename")}, - {key = "x", cb = tree_cb("cut")}, - {key = "c", cb = tree_cb("copy")}, - {key = "p", cb = tree_cb("paste")}, - {key = "y", cb = tree_cb("copy_name")}, - {key = "Y", cb = tree_cb("copy_path")}, - {key = "gy", cb = tree_cb("copy_absolute_path")}, - {key = "[c", cb = tree_cb("prev_git_item")}, - {key = "]c", cb = tree_cb("next_git_item")}, - {key = "-", cb = tree_cb("dir_up")}, - {key = "q", cb = tree_cb("close")}, - {key = "?", cb = tree_cb("toggle_help")} - } - } - }, - renderer = { - indent_markers = { - enable = true, - icons = { - corner = "└", - edge = "│ ", - none = " " - } - }, - icons = { - webdev_colors = true, - show = { - folder_arrow = false - }, - glyphs = { - default = "", - symlink = "", - git = { - unstaged = "✗", - staged = "✓", - unmerged = "", - renamed = "➜", - untracked = "★", - deleted = "", - ignored = "◌" - }, - folder = { - arrow_open = "", - arrow_closed = "", - default = "", - open = "", - empty = "", - empty_open = "", - symlink = "", - symlink_open = "" - } - } - } - } - } -) diff --git a/lua/plugins/pairs.lua b/lua/plugins/pairs.lua new file mode 100644 index 0000000..b0c7fec --- /dev/null +++ b/lua/plugins/pairs.lua @@ -0,0 +1,16 @@ +return { + 'echasnovski/mini.pairs', + event = 'VeryLazy', + opts = { + modes = { insert = true, command = true, terminal = false }, + -- skip autopair when next character is one of these + skip_next = [=[[%w%%%'%[%"%.%`%$]]=], + -- skip autopair when the cursor is inside these treesitter nodes + skip_ts = { 'string' }, + -- skip autopair when next character is closing pair + -- and there are more closing pairs than opening pairs + skip_unbalanced = true, + -- better deal with markdown code blocks + markdown = true, + }, +} diff --git a/lua/plugins/signify.lua b/lua/plugins/signify.lua deleted file mode 100644 index 27a37c0..0000000 --- a/lua/plugins/signify.lua +++ /dev/null @@ -1,2 +0,0 @@ -vim.g.signify_sign_add = "│" -vim.g.signify_sign_change = "│" diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index 2e23941..cd7dd24 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -1,56 +1,62 @@ -local selectX = function(n) - return function(bufnr) - local a = require("telescope.actions") - local s = require("telescope.actions.state") - local picker_name = s.get_current_picker(bufnr).prompt_title - -- if not quick_prompts[picker_name] then - -- -- Disable quick prompts to not press by accident - -- -- TODO: Still type the number - -- return - -- end - a.move_to_top(bufnr) - for _ = 1, n - 1 do - a.move_selection_next(bufnr) - end - a.select_default(bufnr) - end -end +return { -- Fuzzy Finder (files, lsp, etc) + 'nvim-telescope/telescope.nvim', + event = 'VimEnter', + dependencies = { + 'nvim-lua/plenary.nvim', + { -- If encountering errors, see telescope-fzf-native README for installation instructions + 'nvim-telescope/telescope-fzf-native.nvim', -local dropdown_configs = { - layout_config = { - prompt_position = "top", - vertical = { - width = 80, - height = 12 - } - }, - border = {} -} + -- `build` is used to run some command when the plugin is installed/updated. + -- This is only run then, not every time Neovim starts up. + build = 'make', -require("telescope").setup { - file_ignore_patterns = {"package-lock.json"}, - extensions = { - ["ui-select"] = { - require("telescope.themes").get_dropdown(dropdown_configs) - } + -- `cond` is a condition used to determine whether this plugin should be + -- installed and loaded. + cond = function() + return vim.fn.executable('make') == 1 + end, + }, + { 'nvim-telescope/telescope-ui-select.nvim' }, + + -- Useful for getting pretty icons, but requires a Nerd Font. + { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, }, - defaults = { - mappings = { - i = { - [""] = "close", - ["1"] = {selectX(1), type = "action"}, - ["2"] = {selectX(2), type = "action"}, - ["3"] = {selectX(3), type = "action"}, - ["4"] = {selectX(4), type = "action"}, - ["5"] = {selectX(5), type = "action"}, - ["6"] = {selectX(6), type = "action"}, - ["7"] = {selectX(7), type = "action"}, - ["8"] = {selectX(8), type = "action"}, - ["9"] = {selectX(9), type = "action"}, - ["0"] = {selectX(10), type = "action"} + config = function() + local actions = require('telescope.actions') + require('telescope').setup({ + extensions = { + ['ui-select'] = { + require('telescope.themes').get_dropdown(), + }, }, - n = {} - } - } + defaults = { + mappings = { + i = { + [''] = actions.select_horizontal, + }, + n = { + [''] = actions.select_horizontal, + }, + }, + }, + }) + + -- Enable Telescope extensions if they are installed + pcall(require('telescope').load_extension, 'fzf') + pcall(require('telescope').load_extension, 'ui-select') + + -- See `:help telescope.builtin` + local builtin = require('telescope.builtin') + vim.keymap.set('n', 'fh', builtin.help_tags) + vim.keymap.set('n', 'fk', builtin.keymaps) + vim.keymap.set('n', 'ff', builtin.find_files) + vim.keymap.set('n', 'fs', builtin.builtin) + vim.keymap.set('n', 'fw', builtin.grep_string) + vim.keymap.set('n', 'fg', builtin.live_grep) + vim.keymap.set('n', 'fd', builtin.diagnostics) + vim.keymap.set('n', 'fr', builtin.resume) + vim.keymap.set('n', 'f.', builtin.oldfiles) + vim.keymap.set('n', 'fb', builtin.buffers) + vim.keymap.set('n', 'ft', 'TodoTelescope') + end, } -require("telescope").load_extension("ui-select") diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 550536c..8d4c672 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -1,36 +1,56 @@ -local parser_configs = require("nvim-treesitter.parsers").get_parser_configs() -parser_configs.http = { - install_info = { - url = "https://github.com/NTBBloodbath/tree-sitter-http", - files = {"src/parser.c"}, - branch = "main" - } -} -local npairs = require("nvim-autopairs") -npairs.setup( - { - check_ts = true, - enable_check_bracket_line = true - } -) - -require("nvim-ts-autotag").setup({}) - -local tscc = require("ts_context_commentstring.config") -tscc.update( - { - enable_autocmd = false - } -) - -require "nvim-treesitter.configs".setup { - highlight = { - enable = true - }, - indent = { - enable = true - }, - autopairs = { - enable = true - } +return { + 'nvim-treesitter/nvim-treesitter', + build = ':TSUpdate', + config = function() + local configs = require('nvim-treesitter.configs') + + configs.setup({ + ensure_installed = { + 'bash', + 'c_sharp', + 'caddy', + 'css', + 'csv', + 'desktop', + 'diff', + 'dockerfile', + 'editorconfig', + 'gdscript', + 'gdshader', + 'git_config', + 'gitattributes', + 'gitcommit', + 'gitignore', + 'html', + 'ini', + 'javascript', + 'jsdoc', + 'json', + 'json5', + 'jsonc', + 'lua', + 'luadoc', + 'luap', + 'markdown', + 'php', + 'printf', + 'prisma', + 'properties', + 'python', + 'robots', + 'scss', + 'sql', + 'ssh_config', + 'toml', + 'tsx', + 'typescript', + 'xml', + 'yaml', + 'zig', + }, + sync_install = false, + highlight = { enable = true }, + indent = { enable = true }, + }) + end, } diff --git a/lua/plugins/web-devicons.lua b/lua/plugins/web-devicons.lua new file mode 100644 index 0000000..2f68cbc --- /dev/null +++ b/lua/plugins/web-devicons.lua @@ -0,0 +1,57 @@ +return { + 'kyazdani42/nvim-web-devicons', + config = function() + require('nvim-web-devicons').set_icon({ + ['test.ts'] = { + icon = '', + color = '#519aba', + name = 'TsTest', + }, + ['test.tsx'] = { + icon = '', + color = '#519aba', + name = 'TsTest', + }, + ['test.js'] = { + icon = '', + color = '#cbcb41', + name = 'JsTest', + }, + ['test.jsx'] = { + icon = '', + color = '#cbcb41', + name = 'JsTest', + }, + ['readme.md'] = { + icon = '', + color = '#42A5F5', + name = 'Readme', + }, + ['package.json'] = { + icon = '󰎙', + color = '#8BC34A', + name = 'PackageJson', + }, + ['package-lock.json'] = { + icon = '󰎙', + color = '#8BC34A', + name = 'PackageJson', + }, + ['tsconfig.json'] = { + icon = '', + color = '#0288D1', + name = 'TsConfig', + }, + ['prisma'] = { + icon = '', + color = '#FFFFFF', + name = 'Prisma', + }, + ['jar'] = { + icon = '', + color = '#FFFFFF', + name = 'Jar', + }, + }) + end, +} diff --git a/setup.sh b/setup.sh deleted file mode 100755 index 382d559..0000000 --- a/setup.sh +++ /dev/null @@ -1,22 +0,0 @@ -[ -e ~/.local/share/nvim/site/pack/packer/start/packer.nvim ] || git clone https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim -npm i -g @fsouza/prettierd@latest \ -diagnostic-languageserver@latest \ -eslint_d@latest \ -lua-fmt@latest \ -typescript-language-server@latest \ -typescript@latest \ -vim-language-server@latest \ -vscode-css-languageserver-bin@latest \ -vscode-html-languageserver-bin@latest \ -vscode-json-languageserver@latest \ -vscode-langservers-extracted@latest \ -bash-language-server@latest \ -@prisma/language-server@latest \ -cspell@latest \ -@cspell/dict-de-de@latest \ -tsx@latest \ -intelephense \ -@vtsls/language-server - -cspell link add @cspell/dict-de-de -dotnet tool install --global csharp-ls diff --git a/spell/de.latin1.spl b/spell/de.latin1.spl deleted file mode 100644 index 8612f74..0000000 Binary files a/spell/de.latin1.spl and /dev/null differ diff --git a/spell/de.utf-8.add b/spell/de.utf-8.add deleted file mode 100644 index 04fdda8..0000000 --- a/spell/de.utf-8.add +++ /dev/null @@ -1,18 +0,0 @@ -auth/! -auth -Todo -Minecraft -FTB -Technic -Mojang -config -#echnic -technic/! -ConfigManager -Grenning -BWL -Marriot -Loadbalancer -nodejs -Wordpress -VSCode diff --git a/spell/de.utf-8.add.spl b/spell/de.utf-8.add.spl deleted file mode 100644 index 6697e95..0000000 Binary files a/spell/de.utf-8.add.spl and /dev/null differ diff --git a/spell/de.utf-8.spl b/spell/de.utf-8.spl deleted file mode 100644 index b83bdc1..0000000 Binary files a/spell/de.utf-8.spl and /dev/null differ diff --git a/wezterm/wezterm.lua b/wezterm/wezterm.lua deleted file mode 100644 index 88eec72..0000000 --- a/wezterm/wezterm.lua +++ /dev/null @@ -1,52 +0,0 @@ -local wezterm = require "wezterm" - -local config = wezterm.config_builder() - -config.font = - wezterm.font_with_fallback( - { - {family = "Input Mono Narrow", stretch = "Normal"}, - {family = "Hack Nerd Font", stretch = "Normal"} - } -) - -config.allow_square_glyphs_to_overflow_width = "Always" -config.treat_east_asian_ambiguous_width_as_wide = true - -config.default_prog = {"zsh"} -config.use_fancy_tab_bar = false -config.font_size = 11 -config.front_end = "WebGpu" -config.max_fps = 60 -config.animation_fps = 60 -config.colors = { - foreground = "#c5c8c6", - background = "#1d1f21", - cursor_bg = "#c5c8c6", - cursor_border = "#c5c8c6", - cursor_fg = "#1d1f21", - selection_bg = "#373b41", - selection_fg = "#c5c8c6", - ansi = { - "#282a2e", -- black - "#a54242", -- red - "#8c9440", -- green - "#f79d1e", -- yellow - "#5f819d", -- blue - "#85678f", -- magenta - "#049494", -- cyan - "#707880" -- white - }, - brights = { - "#373b41", -- bright black - "#cc6666", -- bright red - "#b5bd68", -- bright green - "#f7c530", -- bright yellow - "#81a2be", -- bright blue - "#b294bb", -- bright magenta - "#66fbfb", -- bright cyan - "#c5c8c6" -- bright white - } -} - -return config