diff --git a/home/.config/lvim/.luacheckrc b/home/.config/lvim/.luacheckrc deleted file mode 100644 index 089f44b..0000000 --- a/home/.config/lvim/.luacheckrc +++ /dev/null @@ -1,43 +0,0 @@ --- vim: ft=lua tw=80 - -stds.nvim = { - globals = { - "lvim", - vim = { fields = { "g" } }, - "TERMINAL", - "USER", - "C", - "Config", - "WORKSPACE_PATH", - "JAVA_LS_EXECUTABLE", - "MUtils", - "USER_CONFIG_PATH", - os = { fields = { "capture" } }, - }, - read_globals = { - "jit", - "os", - "vim", - "join_paths", - "get_runtime_dir", - "get_config_dir", - "get_cache_dir", - "get_lvim_base_dir", - "require_clean", - }, -} - -std = "lua51+nvim" - -files["tests/*_spec.lua"].std = "lua51+nvim+busted" - --- Don't report unused self arguments of methods. -self = false - --- Rerun tests only if their modification time changed. -cache = true - -ignore = { - "631", -- max_line_length - "212/_.*", -- unused argument, for vars with "_" prefix -} diff --git a/home/.config/lvim/.stylua.toml b/home/.config/lvim/.stylua.toml deleted file mode 100644 index df96b7b..0000000 --- a/home/.config/lvim/.stylua.toml +++ /dev/null @@ -1,6 +0,0 @@ -column_width = 120 -line_endings = "Unix" -indent_type = "Spaces" -indent_width = 2 -quote_style = "AutoPreferDouble" -no_call_parentheses = true diff --git a/home/.config/lvim/after/ftplugin/lua.lua b/home/.config/lvim/after/ftplugin/lua.lua deleted file mode 100644 index f6ec406..0000000 --- a/home/.config/lvim/after/ftplugin/lua.lua +++ /dev/null @@ -1,2 +0,0 @@ -vim.api.nvim_create_autocmd("BufWinEnter", { pattern = "*.lua", command = "setlocal shiftwidth=2" }) -vim.api.nvim_create_autocmd("BufWinEnter", { pattern = "*.lua", command = "setlocal tabstop=2" }) diff --git a/home/.config/lvim/after/ftplugin/markdown.lua b/home/.config/lvim/after/ftplugin/markdown.lua deleted file mode 100644 index 60f99cd..0000000 --- a/home/.config/lvim/after/ftplugin/markdown.lua +++ /dev/null @@ -1,2 +0,0 @@ -vim.api.nvim_create_autocmd("BufWinEnter", { pattern = "*.md", command = "setlocal tw=119" }) -vim.api.nvim_create_autocmd("BufWinEnter", { pattern = "*.md", command = "SymbolsOutline" }) diff --git a/home/.config/lvim/after/ftplugin/python.lua b/home/.config/lvim/after/ftplugin/python.lua deleted file mode 100644 index f105b42..0000000 --- a/home/.config/lvim/after/ftplugin/python.lua +++ /dev/null @@ -1,2 +0,0 @@ --- local dap_install = require "dap-install" --- dap_install.config("python", {}) diff --git a/home/.config/lvim/config.lua b/home/.config/lvim/config.lua deleted file mode 100644 index 7f30e99..0000000 --- a/home/.config/lvim/config.lua +++ /dev/null @@ -1,44 +0,0 @@ -require "user.keys" -require "user.abbreviations" -require "user.lsp" -require "user.autocmds" -require "user.plugins" -require "user.options" -require "user.lualine" -require "user.treesitter" - --- TEMPORARY; Learn vim, the hard way --- vim.opt.mouse = {} --- lvim.keys.normal_mode[""] = "" --- lvim.keys.normal_mode[""] = "" --- lvim.keys.normal_mode[""] = "" --- lvim.keys.normal_mode[""] = "" --- lvim.keys.visual_mode[""] = "" --- lvim.keys.visual_mode[""] = "" --- lvim.keys.visual_mode[""] = "" --- lvim.keys.visual_mode[""] = "" --- lvim.keys.insert_mode[""] = "" --- lvim.keys.insert_mode[""] = "" --- lvim.keys.insert_mode[""] = "" --- lvim.keys.insert_mode[""] = "" - - --- General -lvim.log.level = "warn" -lvim.format_on_save = false -lvim.colorscheme = "onedarker" --- lvim.colorscheme = "lunar" - --- to disable icons and use a minimalist setup, uncomment the following --- lvim.use_icons = false - --- TODO: User Config for predefined plugins --- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile -lvim.builtin.dap.active = true -lvim.builtin.terminal.active = true -lvim.builtin.alpha.active = true -lvim.builtin.alpha.mode = "dashboard" -lvim.builtin.nvimtree.setup.view.side = "left" ---lvim.builtin.project.patterns = { ".git", ".svn" } -lvim.builtin.bufferline.options.always_show_bufferline = true --- lvim.builtin.nvimtree.setup.renderer.icons.show.git = false diff --git a/home/.config/lvim/config.lua.bak b/home/.config/lvim/config.lua.bak deleted file mode 100644 index 6541543..0000000 --- a/home/.config/lvim/config.lua.bak +++ /dev/null @@ -1,185 +0,0 @@ ---[[ -lvim is the global options object - -Linters should be -filled in as strings with either -a global executable or a path to -an executable -]] --- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT - --- general -lvim.log.level = "warn" -lvim.format_on_save.enabled = false -lvim.colorscheme = "lunar" --- to disable icons and use a minimalist setup, uncomment the following --- lvim.use_icons = false - --- keymappings [view all the defaults by pressing Lk] -lvim.leader = "space" --- add your own keymapping -lvim.keys.normal_mode[""] = ":w" --- lvim.keys.normal_mode[""] = ":BufferLineCycleNext" --- lvim.keys.normal_mode[""] = ":BufferLineCyclePrev" --- unmap a default keymapping --- vim.keymap.del("n", "") --- override a default keymapping --- lvim.keys.normal_mode[""] = ":q" -- or vim.keymap.set("n", "", ":q" ) - --- Change Telescope navigation to use j and k for navigation and n and p for history in both input and normal mode. --- we use protected-mode (pcall) just in case the plugin wasn't loaded yet. --- local _, actions = pcall(require, "telescope.actions") --- lvim.builtin.telescope.defaults.mappings = { --- -- for input mode --- i = { --- [""] = actions.move_selection_next, --- [""] = actions.move_selection_previous, --- [""] = actions.cycle_history_next, --- [""] = actions.cycle_history_prev, --- }, --- -- for normal mode --- n = { --- [""] = actions.move_selection_next, --- [""] = actions.move_selection_previous, --- }, --- } - --- Change theme settings --- lvim.builtin.theme.options.dim_inactive = true --- lvim.builtin.theme.options.style = "storm" - --- Use which-key to add extra bindings with the leader-key prefix --- lvim.builtin.which_key.mappings["P"] = { "Telescope projects", "Projects" } --- lvim.builtin.which_key.mappings["t"] = { --- name = "+Trouble", --- r = { "Trouble lsp_references", "References" }, --- f = { "Trouble lsp_definitions", "Definitions" }, --- d = { "Trouble document_diagnostics", "Diagnostics" }, --- q = { "Trouble quickfix", "QuickFix" }, --- l = { "Trouble loclist", "LocationList" }, --- w = { "Trouble workspace_diagnostics", "Workspace Diagnostics" }, --- } - --- TODO: User Config for predefined plugins --- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile -lvim.builtin.alpha.active = true -lvim.builtin.alpha.mode = "dashboard" -lvim.builtin.terminal.active = true -lvim.builtin.nvimtree.setup.view.side = "left" -lvim.builtin.nvimtree.setup.renderer.icons.show.git = false - --- if you don't want all the parsers change this to a table of the ones you want -lvim.builtin.treesitter.ensure_installed = { - "bash", - "c", - "javascript", - "json", - "lua", - "python", - "typescript", - "tsx", - "css", - "rust", - "java", - "yaml", -} - -lvim.builtin.treesitter.ignore_install = { "haskell" } -lvim.builtin.treesitter.highlight.enable = true - --- generic LSP settings - --- -- make sure server will always be installed even if the server is in skipped_servers list --- lvim.lsp.installer.setup.ensure_installed = { --- "sumneko_lua", --- "jsonls", --- } --- -- change UI setting of `LspInstallInfo` --- -- see --- lvim.lsp.installer.setup.ui.check_outdated_servers_on_open = false --- lvim.lsp.installer.setup.ui.border = "rounded" --- lvim.lsp.installer.setup.ui.keymaps = { --- uninstall_server = "d", --- toggle_server_expand = "o", --- } - --- ---@usage disable automatic installation of servers --- lvim.lsp.installer.setup.automatic_installation = false - --- ---configure a server manually. !!Requires `:LvimCacheReset` to take effect!! --- ---see the full default list `:lua print(vim.inspect(lvim.lsp.automatic_configuration.skipped_servers))` --- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" }) --- local opts = {} -- check the lspconfig documentation for a list of all possible options --- require("lvim.lsp.manager").setup("pyright", opts) - --- ---remove a server from the skipped list, e.g. eslint, or emmet_ls. !!Requires `:LvimCacheReset` to take effect!! --- ---`:LvimInfo` lists which server(s) are skipped for the current filetype --- lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server) --- return server ~= "emmet_ls" --- end, lvim.lsp.automatic_configuration.skipped_servers) - --- -- you can set a custom on_attach function that will be used for all the language servers --- -- See --- lvim.lsp.on_attach_callback = function(client, bufnr) --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --Enable completion triggered by --- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") --- end - --- -- set a formatter, this will override the language server formatting capabilities (if it exists) --- local formatters = require "lvim.lsp.null-ls.formatters" --- formatters.setup { --- { command = "black", filetypes = { "python" } }, --- { command = "isort", filetypes = { "python" } }, --- { --- -- each formatter accepts a list of options identical to https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md#Configuration --- command = "prettier", --- ---@usage arguments to pass to the formatter --- -- these cannot contain whitespaces, options such as `--line-width 80` become either `{'--line-width', '80'}` or `{'--line-width=80'}` --- extra_args = { "--print-with", "100" }, --- ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. --- filetypes = { "typescript", "typescriptreact" }, --- }, --- } - --- -- set additional linters --- local linters = require "lvim.lsp.null-ls.linters" --- linters.setup { --- { command = "flake8", filetypes = { "python" } }, --- { --- -- each linter accepts a list of options identical to https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md#Configuration --- command = "shellcheck", --- ---@usage arguments to pass to the formatter --- -- these cannot contain whitespaces, options such as `--line-width 80` become either `{'--line-width', '80'}` or `{'--line-width=80'}` --- extra_args = { "--severity", "warning" }, --- }, --- { --- command = "codespell", --- ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. --- filetypes = { "javascript", "python" }, --- }, --- } - --- Additional Plugins --- lvim.plugins = { --- { --- "folke/trouble.nvim", --- cmd = "TroubleToggle", --- }, --- } - --- Autocommands (https://neovim.io/doc/user/autocmd.html) --- vim.api.nvim_create_autocmd("BufEnter", { --- pattern = { "*.json", "*.jsonc" }, --- -- enable wrap mode for json files only --- command = "setlocal wrap", --- }) --- vim.api.nvim_create_autocmd("FileType", { --- pattern = "zsh", --- callback = function() --- -- let treesitter use bash highlight for zsh files as well --- require("nvim-treesitter.highlight").attach(0, "bash") --- end, --- }) diff --git a/home/.config/lvim/ftdetect/apparmor.lua b/home/.config/lvim/ftdetect/apparmor.lua deleted file mode 100644 index c27f5b7..0000000 --- a/home/.config/lvim/ftdetect/apparmor.lua +++ /dev/null @@ -1,11 +0,0 @@ -local autocmd = vim.api.nvim_create_autocmd - -autocmd({ "BufNewFile", "BufRead" }, { - pattern = { "/etc/apparmor.d/*" }, - command = "setfiletype apparmor" -}) - -autocmd({ "BufNewFile", "BufRead" }, { - pattern = { "/usr/share/apparmor/extra-profiles/*" }, - command = "setfiletype apparmor" -}) diff --git a/home/.config/lvim/ftdetect/axaml.lua b/home/.config/lvim/ftdetect/axaml.lua deleted file mode 100644 index 1204c37..0000000 --- a/home/.config/lvim/ftdetect/axaml.lua +++ /dev/null @@ -1,6 +0,0 @@ -local autocmd = vim.api.nvim_create_autocmd - -autocmd({ "BufNewFile", "BufRead" }, { - pattern = { "*.axaml" }, - command = "setfiletype xml" -}) diff --git a/home/.config/lvim/lua/user/abbreviations.lua b/home/.config/lvim/lua/user/abbreviations.lua deleted file mode 100644 index 658a51b..0000000 --- a/home/.config/lvim/lua/user/abbreviations.lua +++ /dev/null @@ -1,30 +0,0 @@ --- Define an abbreviation -local function abbrev(mode, input, result, reabbrev) - reabbrev = reabbrev or false - local command - if reabbrev then - command = mode .. "abbrev" - else - command = mode .. "noreabbrev" - end - vim.cmd(command .. " " .. input .. " " .. result) -end - --- In case I have caps on (don't judge me for using caps) -abbrev("c", "Wq", "wq") -abbrev("c", "wQ", "wq") -abbrev("c", "WQ", "wq") -abbrev("c", "WQ!", "wq") -abbrev("c", "wQ!", "wq") -abbrev("c", "Wq!", "wq") -abbrev("c", "W", "w") -abbrev("c", "W!", "w!") -abbrev("c", "Q", "q!") -abbrev("c", "Q!", "q!") -abbrev("c", "Qall", "qall") -abbrev("c", "Qall!", "qall") -abbrev("c", "QALL", "qall") -abbrev("c", "QALL!", "qall") - --- Save file with sudo -abbrev("c", "w!!", "w !sudo tee > /dev/null %") diff --git a/home/.config/lvim/lua/user/autocmds.lua b/home/.config/lvim/lua/user/autocmds.lua deleted file mode 100644 index 14274d7..0000000 --- a/home/.config/lvim/lua/user/autocmds.lua +++ /dev/null @@ -1,17 +0,0 @@ --- Autocommands (https://neovim.io/doc/user/autocmd.html) - --- Delete all trailing whitespace on saving -vim.api.nvim_create_autocmd("BufWritePre", { pattern = "*.py", command = [[%s/\s\+$//e]] }) --- Jump to last position when opening a file -vim.api.nvim_create_autocmd("BufReadPost", { - pattern = "*", - command = [[if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif]], -}) --- Highlight current line number as blue -vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", command = "highlight CursorLine guibg=#2b2b2b" }) -vim.api.nvim_create_autocmd("ColorScheme", { - pattern = "*", - command = "highlight CursorLineNr guifg=#1f85de ctermfg=LightBlue", -}) --- Custom syntax definitions based on file extensions --- vim.api.nvim_create_autocmd("BufRead", { pattern = "*.axml", command = "set ft=xml" }) diff --git a/home/.config/lvim/lua/user/keys.lua b/home/.config/lvim/lua/user/keys.lua deleted file mode 100644 index 2e78e6d..0000000 --- a/home/.config/lvim/lua/user/keys.lua +++ /dev/null @@ -1,119 +0,0 @@ --- keymappings (view all the lunarvim keybinds with Lk or list every mapping with :map) -lvim.leader = "space" - --- Common shortcuts -lvim.keys.normal_mode[""] = ":w" -lvim.keys.insert_mode[""] = ":wi" -lvim.keys.normal_mode[""] = ":undo" -lvim.keys.normal_mode[""] = ":redo" - --- Horizontal movements -lvim.keys.normal_mode["H"] = "^" -lvim.keys.normal_mode["L"] = "$" - --- Moving through buffers -lvim.keys.normal_mode[""] = ":BufferLineCycleNext" -lvim.keys.normal_mode[""] = ":BufferLineCyclePrev" -lvim.keys.normal_mode[""] = ":BufferLineMoveNext" -lvim.keys.normal_mode[""] = ":BufferLineMovePrev" - --- Opening various menus -lvim.keys.normal_mode[""] = ":NvimTreeFindFileToggle" -lvim.keys.normal_mode[""] = ":Lf" -lvim.keys.normal_mode[""] = ":SymbolsOutline" - --- Delete to void register -lvim.keys.visual_mode[""] = '"_d' -lvim.keys.normal_mode[""] = '"_d' -lvim.keys.visual_mode[""] = '"_dP' -lvim.keys.visual_mode["p"] = '"_dP' - --- Remove highlight -lvim.keys.normal_mode[""] = ":nohlsearch" - --- Debugger -lvim.keys.normal_mode[""] = ":DapToggleBreakpoint" -lvim.keys.normal_mode[""] = ":DapContinue" -lvim.keys.normal_mode[""] = ":DapToggleRepl" -lvim.keys.normal_mode[""] = ":DapTerminate" -lvim.keys.normal_mode[""] = ":DapStepOver" -lvim.keys.normal_mode[""] = ":DapStepInto" -lvim.keys.normal_mode[""] = ":DapStepOut" - --- Goto preview -lvim.keys.normal_mode["gpd"] = ":lua require('goto-preview').goto_preview_definition()" -lvim.keys.normal_mode["gpt"] = ":lua require('goto-preview').goto_preview_type_definition()" -lvim.keys.normal_mode["gpi"] = ":lua require('goto-preview').goto_preview_implementation()" -lvim.keys.normal_mode["gpr"] = ":lua require('goto-preview').goto_preview_references()" -lvim.keys.normal_mode["gP"] = ":lua require('goto-preview').close_all_win()" - - --- Quick word replacing (use . for next word) -lvim.keys.normal_mode["cn"] = "*``cgn" -lvim.keys.normal_mode["cN"] = "*``cgN" - -lvim.builtin.terminal.open_mapping = "" - --- Quick replace all -vim.api.nvim_set_keymap("n", "", "", { - noremap = true, - callback = function() - vim.fn.inputsave() - local query = vim.fn.input "To replace: " - - vim.fn.inputsave() - local answer = vim.fn.input("Replace text: ", query) - vim.api.nvim_command("%s/\\V" .. query:gsub("/", "\\/") .. "/" .. answer:gsub("/", "\\/") .. "/") - vim.fn.inputrestore() - vim.api.nvim_feedkeys("v", "n", false) - end, -}) -vim.api.nvim_set_keymap("v", "", "", { - noremap = true, - callback = function() - local getselection = function() - return vim.fn.strcharpart(vim.fn.getline(vim.fn.line "."), vim.fn.min { - vim.fn.charcol ".", - vim.fn.charcol "v", - } - 1, vim.fn.abs(vim.fn.charcol "." - vim.fn.charcol "v") + 1) - end - - local query = getselection() - - vim.fn.inputsave() - local answer = vim.fn.input("Replace text: ", query) - vim.api.nvim_command("%s/\\V" .. query:gsub("/", "\\/") .. "/" .. answer:gsub("/", "\\/") .. "/") - vim.fn.inputrestore() - vim.api.nvim_feedkeys("v", "n", false) - end, -}) - --- Change Telescope navigation to use j and k for navigation and n and p for history in both input and normal mode. --- we use protected-mode (pcall) just in case the plugin wasn't loaded yet. --- local _, actions = pcall(require, "telescope.actions") --- lvim.builtin.telescope.defaults.mappings = { --- -- for input mode --- i = { --- [""] = actions.move_selection_next, --- [""] = actions.move_selection_previous, --- [""] = actions.cycle_history_next, --- [""] = actions.cycle_history_prev, --- }, --- -- for normal mode --- n = { --- [""] = actions.move_selection_next, --- [""] = actions.move_selection_previous, --- }, --- } - --- Use which-key to add extra bindings with the leader-key prefix --- lvim.builtin.which_key.mappings["P"] = { "Telescope projects", "Projects" } --- lvim.builtin.which_key.mappings["t"] = { --- name = "+Trouble", --- r = { "Trouble lsp_references", "References" }, --- f = { "Trouble lsp_definitions", "Definitions" }, --- d = { "Trouble document_diagnostics", "Diagnostics" }, --- q = { "Trouble quickfix", "QuickFix" }, --- l = { "Trouble loclist", "LocationList" }, --- w = { "Trouble workspace_diagnostics", "Workspace Diagnostics" }, --- } diff --git a/home/.config/lvim/lua/user/lsp.lua b/home/.config/lvim/lua/user/lsp.lua deleted file mode 100644 index f162a5c..0000000 --- a/home/.config/lvim/lua/user/lsp.lua +++ /dev/null @@ -1,68 +0,0 @@ --- generic LSP settings - --- -- make sure server will always be installed even if the server is in skipped_servers list --- lvim.lsp.installer.setup.ensure_installed = { --- "sumeko_lua", --- "jsonls", --- } --- -- change UI setting of `LspInstallInfo` --- -- see --- lvim.lsp.installer.setup.ui.check_outdated_servers_on_open = false --- lvim.lsp.installer.setup.ui.border = "rounded" --- lvim.lsp.installer.setup.ui.keymaps = { --- uninstall_server = "d", --- toggle_server_expand = "o", --- } - --- ---@usage disable automatic installation of servers -lvim.lsp.installer.setup.automatic_installation = false - --- ---configure a server manually. !!Requires `:LvimCacheReset` to take effect!! --- ---see the full default list `:lua print(vim.inspect(lvim.lsp.automatic_configuration.skipped_servers))` --- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" }) --- local opts = {} -- check the lspconfig documentation for a list of all possible options --- require("lvim.lsp.manager").setup("pyright", opts) - --- ---remove a server from the skipped list, e.g. eslint, or emmet_ls. !!Requires `:LvimCacheReset` to take effect!! --- ---`:LvimInfo` lists which server(s) are skipped for the current filetype --- lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server) --- return server ~= "emmet_ls" --- end, lvim.lsp.automatic_configuration.skipped_servers) - --- -- you can set a custom on_attach function that will be used for all the language servers --- -- See --- lvim.lsp.on_attach_callback = function(client, bufnr) --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --Enable completion triggered by --- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") --- end - --- set a formatter, this will override the language server formatting capabilities (if it exists) -lvim.format_on_save = false -local formatters = require "lvim.lsp.null-ls.formatters" -formatters.setup { - -- each formatter accepts a list of options identical to - -- https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md#Configuration - { command = "black", filetypes = { "python" } }, - { command = "isort", filetypes = { "python" } }, - { - command = "prettier", - extra_args = { "--print-width", "100" }, - filetypes = { "typescript", "typescriptreact" }, - }, - { command = "stylua", filetypes = { "lua" } }, - -- { command = "rustfmt", filetypes = { "rust" } }, -} - --- set additional linters -local linters = require "lvim.lsp.null-ls.linters" -linters.setup { - -- Each linter accepts a list of options identical to - -- https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md#Configuration - { command = "flake8", filetypes = { "python" } }, - { command = "shellcheck", extra_args = { "--severity", "warning" } }, - { command = "codespell", filetypes = { "javascript", "python", "lua" } }, - { command = "luacheck", filetypes = { "lua" } }, -} diff --git a/home/.config/lvim/lua/user/lualine.lua b/home/.config/lvim/lua/user/lualine.lua deleted file mode 100644 index cb74da5..0000000 --- a/home/.config/lvim/lua/user/lualine.lua +++ /dev/null @@ -1,4 +0,0 @@ --- Add location (row:col) to lualine -local components = require "lvim.core.lualine.components" -lvim.builtin.lualine.sections.lualine_z = { components.location } -lvim.builtin.lualine.sections.lualine_y = { components.progress } diff --git a/home/.config/lvim/lua/user/options.lua b/home/.config/lvim/lua/user/options.lua deleted file mode 100644 index 25bf0d2..0000000 --- a/home/.config/lvim/lua/user/options.lua +++ /dev/null @@ -1,48 +0,0 @@ --- Show whitespaces -vim.opt.list = true -- Enable showing characters like , -vim.opt.listchars = { tab = " ", trail = "·" } -- Specify which characters to show - --- Theme options -vim.opt.cursorline = true -- Highlight cursor line --- vim.opt.laststatus = 2 -- Always show status line -vim.opt.relativenumber = true -- Use relative line numbers -vim.opt.wrap = true -- Allow line wrapping - --- Tab/Indent settings -vim.opt.shiftwidth = 4 -- Number of spaces inserted for each indentation (>>, <<) -vim.opt.tabstop = 4 -- Number of spaces a tab in file accounts for -vim.opt.shiftround = true -- Always round indent to multiple of shiftwidth when indenting (>>, <<) --- --- Enable syntax highlighting in fenced markdown code-blocks -vim.g.markdown_fenced_languages = {"html", "javascript", "typescript", "css", "scss", "lua", "vim", "python"} - --- Make vim transparent (removes background) --- lvim.transparent_window = true - --- Configure formatoption -lvim.autocommands._formatoptions = {} -vim.opt.formatoptions = { - -- default: tcqj - t = true, -- Auto-wrap text using 'textwidth' - c = true, -- Auto-wrap comments using 'textwidth', inserting the comment leader automatically - r = false, -- Automatically insert the comment leader after hitting in Insert mode - o = false, -- Automatically insert the comment leader after hitting 'o' or 'O' in Normal mode - q = true, -- Allow formatting of comments with "gq" (won't change blank lines) - w = false, -- Trailing whitespace continues paragraph in the next line, non-whitespace ends it - a = false, -- Automatic formatting of paragraph. Every time text is inserted/deleted, paragraph gets reformatted - n = false, -- Recognize numbered lists when wrapping. - ["2"] = true, -- Use indent from 2nd line of a paragraph - v = false, -- Only break a line at a blank entered during current insert command - b = false, -- Like 'v', but only wrap on entering blank, or before the wrap margin - l = false, -- Long lines are not broken in insert mode - m = false, -- Also break at a multibyte character above 255 - M = false, -- When joining lines, don't insert a space before, or after two multibyte chars (overruled by 'B') - B = false, -- When joining lines, don't insert a space between two multibyte chars (overruled by 'M') - ["1"] = true, -- Break line before a single-letter word. - ["]"] = false, -- Respect 'textwidth' rigorously, no line can be longer unless there's some except rule - j = true, -- Remove comment leader when joining lines, when it makes sense - p = false, -- Don't break lines at single spaces that follow periods (such as for Surely you're joking, Mr. Feynman!) -} - --- Other -vim.opt.shell = "/bin/sh" diff --git a/home/.config/lvim/lua/user/plugins.lua b/home/.config/lvim/lua/user/plugins.lua deleted file mode 100644 index ca8c117..0000000 --- a/home/.config/lvim/lua/user/plugins.lua +++ /dev/null @@ -1,124 +0,0 @@ -lvim.plugins = { - -- LSP - - { - -- Tree-like view for symbols in current file using LSP - "simrat39/symbols-outline.nvim", - config = function() - require("symbols-outline").setup { - width = 18, - autofold_depth = 1, - } - end, - }, - { - -- Show function signature while typing - "ray-x/lsp_signature.nvim", - config = function() - require("lsp_signature").on_attach() - end, - event = "BufRead", - }, - - -- User interface - - -- Autocompletion - - { - -- Local AI completion helper - "tzachar/cmp-tabnine", - run = "./install.sh", - requires = "hrsh7th/nvim-cmp", - }, - - -- { - -- -- Github copilot for code completion - -- "zbirenbaum/copilot.lua", - -- event = { "VimEnter" }, - -- config = function() - -- vim.defer_fn(function() - -- require("copilot").setup() - -- end, 100) - -- end, - -- }, - -- { - -- -- Github compilot cmp source - -- "zbirenbaum/copilot-cmp", - -- after = { "copilot.lua", "nvim-cmp" } - -- }, - - - -- Treesitter - - -- { - -- -- Colorize matching parenthesis using treesitter - -- "p00f/nvim-ts-rainbow", - -- }, - - { - -- Treesitter information shown directly in neovim - "nvim-treesitter/playground", - }, - - { - -- Alwats show class/function name we're in - "romgrk/nvim-treesitter-context", - config = function() - require("treesitter-context").setup { - enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) - throttle = true, -- Throttles plugin updates (may improve performance) - max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit. - patterns = { -- Match patterns for TS nodes. These get wrapped to match at word boundaries. - -- For all filetypes - -- Note that setting an entry here replaces all other patterns for this entry. - -- By setting the 'default' entry below, you can control which nodes you want to - -- appear in the context window. - default = { - "class", - "function", - "method", - "while", - "for", - "if", - "switch", - "case", - }, - }, - } - end, - }, - - -- Other - - { - -- Code time & habit tracking - "wakatime/vim-wakatime" - }, - - { - -- Make clipboard work on wayland (using wl-copy) - "jasonccox/vim-wayland-clipboard" - }, - - { - -- eww configuration language support - "elkowar/yuck.vim" - }, - - { - -- Goto preview (definition/implementation/references) - "rmagatti/goto-preview", - config = function() - require('goto-preview').setup {} - end - }, - -} - --- Register copilot as cmp source --- lvim.builtin.cmp.formatting.source_names["copilot"] = "(Copilot)" --- table.insert(lvim.builtin.cmp.sources, 1, { name = "copilot" }) - --- Register tabnine as cmp source -lvim.builtin.cmp.formatting.source_names["tabnine"] = "(Tabnine)" -table.insert(lvim.builtin.cmp.sources, { name = "tabnine" }) diff --git a/home/.config/lvim/lua/user/treesitter.lua b/home/.config/lvim/lua/user/treesitter.lua deleted file mode 100644 index 02907fc..0000000 --- a/home/.config/lvim/lua/user/treesitter.lua +++ /dev/null @@ -1,42 +0,0 @@ --- if you don't want all the parsers change this to a table of the ones you want -lvim.builtin.treesitter.ensure_installed = { - "bash", - "c", - "javascript", - "json", - "lua", - "python", - "typescript", - "tsx", - "css", - "rust", - "java", - "yaml", -} - -lvim.builtin.treesitter.ignore_install = {} -lvim.builtin.treesitter.highlight.enabled = true --- lvim.builtin.treesitter.rainbow.enable = true - --- local parser_config = require "nvim-treesitter.parsers".get_parser_configs() --- parser_config.apparmor = { --- install_info = { --- url = "~/Personal/Programming/GitHub/Other/tree-sitter-apparmor", -- local path or git repo --- files = {"src/parser.c"}, --- -- optional entries: --- branch = "main", -- default branch in case of git repo if different from master --- generate_requires_npm = false, -- if stand-alone parser without npm dependencies --- requires_generate_from_grammar = false, -- if folder contains pre-generated src/parser.c --- }, --- filetype = "apparmor", -- if filetype does not match the parser name --- } --- --- local ft_to_parser = require"nvim-treesitter.parsers".filetype_to_parsername --- ft_to_parser.apparmor = "apparmor" - --- Temporary mappings --- lvim.keys.normal_mode["gu"] = ":TSUpdate apparmor" --- lvim.keys.normal_mode["gU"] = ":TSToggle apparmor" --- lvim.keys.normal_mode["gt"] = ":TSPlaygroundToggle" --- lvim.keys.normal_mode["gh"] = ":TSNodeUnderCursor" --- lvim.keys.normal_mode["gH"] = ":TSHighlightCapturesUnderCursor" diff --git a/home/.config/lvim/snippets/package.json b/home/.config/lvim/snippets/package.json deleted file mode 100644 index 5ff827f..0000000 --- a/home/.config/lvim/snippets/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "nvim-snippets", - "author": "ItsDrike", - "engines": { - "vscode": "^1.11.0" - }, - "contributes": { - "snippets": [ - { - "language": "python", - "path": "./python.json" - } - ] - } -} diff --git a/home/.config/lvim/snippets/python.json b/home/.config/lvim/snippets/python.json deleted file mode 100644 index 680c8a1..0000000 --- a/home/.config/lvim/snippets/python.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "future.__annotations__": { - "prefix": "futann", - "body": "from __future__ import annotations\n", - "description": "Add __future__.annoations import." - }, - "script": { - "prefix": "script", - "body": [ - "#!/usr/bin/env python3", - "", - "def main() -> None:", - "\t${1:...}", - "", - "", - "if __name__ == \"__main__\":", - "\tmain()" - ], - "description": "print Hello, World!" - } -} diff --git a/home/.config/lvim/spell/en.utf-8.add b/home/.config/lvim/spell/en.utf-8.add deleted file mode 100644 index e32b4bd..0000000 --- a/home/.config/lvim/spell/en.utf-8.add +++ /dev/null @@ -1,26 +0,0 @@ -Flake8 -Isort -linter -flake8 -isort -TOML -YAML -linters -MyPy -Pyright -pyright -VSCode -Pylance -Docstrings -Docstring -docstrings -docstring -BSPWM -Xmonad -deserialized -serializable -ItsDrike -itsdrike -protonmail -wireguard -Apparmor diff --git a/home/.config/lvim/spell/en.utf-8.add.spl b/home/.config/lvim/spell/en.utf-8.add.spl deleted file mode 100644 index d88690d..0000000 Binary files a/home/.config/lvim/spell/en.utf-8.add.spl and /dev/null differ diff --git a/home/.config/lvim/syntax/apparmor.vim b/home/.config/lvim/syntax/apparmor.vim deleted file mode 100644 index 428ce96..0000000 --- a/home/.config/lvim/syntax/apparmor.vim +++ /dev/null @@ -1,283 +0,0 @@ -" generated from apparmor.vim.in by create-apparmor.vim.py -" do not edit this file - edit apparmor.vim.in or create-apparmor.vim.py instead - -" ---------------------------------------------------------------------- -" Copyright (c) 2005 Novell, Inc. All Rights Reserved. -" Copyright (c) 2006-2012 Christian Boltz. All Rights Reserved. -" -" This program is free software; you can redistribute it and/or -" modify it under the terms of version 2 of the GNU General Public -" License as published by the Free Software Foundation. -" -" This program is distributed in the hope that it will be useful, -" but WITHOUT ANY WARRANTY; without even the implied warranty of -" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -" GNU General Public License for more details. -" -" You should have received a copy of the GNU General Public License -" along with this program; if not, contact Novell, Inc. -" -" To contact Novell about this file by physical or electronic mail, -" you may find current contact information at www.novell.com. -" -" To contact Christian Boltz about this file by physical or electronic -" mail, you may find current contact information at www.cboltz.de/en/kontakt. -" -" If you want to report a bug via bugzilla.novell.com, please assign it -" to suse-beta[AT]cboltz.de (replace [AT] with @). -" ---------------------------------------------------------------------- -" -" stick this file into ~/.vim/syntax/ and add these commands into your .vimrc -" to have vim automagically use this syntax file for these directories: -" -" autocmd BufNewFile,BufRead /etc/apparmor.d/* set syntax=apparmor -" autocmd BufNewFile,BufRead /usr/share/apparmor/extra-profiles/* set syntax=apparmor - -" profiles are case sensitive -syntax case match - -" color setup... - -" adjust colors according to the background - -" switching colors depending on the background color doesn't work -" unfortunately, so we use colors that work with light and dark background. -" Patches welcome ;-) - -"if &background == "light" -" light background - hi sdProfileName ctermfg=lightblue - hi sdHatName ctermfg=darkblue - hi sdExtHat ctermfg=darkblue -" hi sdComment2 ctermfg=darkblue - hi sdGlob ctermfg=darkmagenta - hi sdAlias ctermfg=darkmagenta - hi sdEntryWriteExec ctermfg=black ctermbg=yellow - hi sdEntryUX ctermfg=darkred cterm=underline - hi sdEntryUXe ctermfg=darkred - hi sdEntryIX ctermfg=darkcyan - hi sdEntryM ctermfg=darkcyan - hi sdEntryPX ctermfg=darkgreen cterm=underline - hi sdEntryPXe ctermfg=darkgreen - hi sdEntryW ctermfg=darkyellow - hi sdCap ctermfg=lightblue - hi sdSetCap ctermfg=black ctermbg=yellow - hi sdNetwork ctermfg=lightblue - hi sdNetworkDanger ctermfg=darkred - hi sdCapKey cterm=underline ctermfg=lightblue - hi sdCapDanger ctermfg=darkred - hi sdRLimit ctermfg=lightblue - hi def link sdEntryR Normal - hi def link sdEntryK Normal - hi def link sdFlags Normal - hi sdEntryChangeProfile ctermfg=darkgreen cterm=underline -"else -" dark background -" hi sdProfileName ctermfg=white -" hi sdHatName ctermfg=white -" hi sdGlob ctermfg=magenta -" hi sdEntryWriteExec ctermfg=black ctermbg=yellow -" hi sdEntryUX ctermfg=red cterm=underline -" hi sdEntryUXe ctermfg=red -" hi sdEntryIX ctermfg=cyan -" hi sdEntryM ctermfg=cyan -" hi sdEntryPX ctermfg=green cterm=underline -" hi sdEntryPXe ctermfg=green -" hi sdEntryW ctermfg=yellow -" hi sdCap ctermfg=lightblue -" hi sdCapKey cterm=underline ctermfg=lightblue -" hi def link sdEntryR Normal -" hi def link sdFlags Normal -" hi sdCapDanger ctermfg=red -"endif - -hi def link sdInclude Include -high def link sdComment Comment -"high def link sdComment2 Comment -high def link sdFlagKey TODO -high def link sdError ErrorMsg - - -" always sync from the start. should be relatively quick since we don't have -" that many rules and profiles shouldn't be _extremely_ large... -syn sync fromstart - -syn keyword sdFlagKey complain debug - -" highlight invalid syntax -syn match sdError /{/ contained -syn match sdError /}/ -syn match sdError /^.*$/ contains=sdComment "highlight all non-valid lines as error -" TODO: do not mark lines containing only whitespace as error - -" TODO: the sdGlob pattern is not anchored with ^ and $, so it matches all lines matching ^@{...}.* -" This allows incorrect lines also and should be checked better. -" This also (accidently ;-) includes variable definitions (@{FOO}=/bar) -" TODO: make a separate pattern for variable definitions, then mark sdGlob as contained -syn match sdGlob /\v\?|\*|\{.*,.*\}|[[^\]]\+\]|\@\{[a-zA-Z][a-zA-Z0-9_]*\}/ - -syn match sdAlias /\v^alias\s+(\/|\@\{\S*\})\S*\s+-\>\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob - -" syn match sdComment /#.*/ - -syn cluster sdEntry contains=sdEntryWriteExec,sdEntryR,sdEntryW,sdEntryIX,sdEntryPX,sdEntryPXe,sdEntryUX,sdEntryUXe,sdEntryM,sdCap,sdSetCap,sdExtHat,sdRLimit,sdNetwork,sdNetworkDanger,sdEntryChangeProfile - - -" TODO: support audit and deny keywords for all rules (not only for files) -" TODO: higlight audit and deny keywords everywhere - -" Capability line - -" normal capabilities - really keep this list? syn match sdCap should be enough... (difference: sdCapKey words would loose underlining) -syn keyword sdCapKey audit_read block_suspend chown dac_override dac_read_search fowner fsetid ipc_lock ipc_owner kill lease linux_immutable mknod net_admin net_bind_service net_broadcast net_raw setfcap setgid setpcap setuid syslog sys_boot sys_chroot sys_nice sys_pacct sys_ptrace sys_resource sys_time sys_tty_config wake_alarm - -" dangerous capabilities - highlighted separately -syn keyword sdCapDanger audit_control audit_write mac_override mac_admin set_fcap sys_admin sys_module sys_rawio - -" full line. Keywords are from sdCapKey + sdCapDanger -syn match sdCap /\v^\s*(audit\s+)?(deny\s+|allow\s+)?capability\s+((audit_control|audit_read|audit_write|block_suspend|chown|dac_override|dac_read_search|fowner|fsetid|ipc_lock|ipc_owner|kill|lease|linux_immutable|mac_admin|mac_override|mknod|net_admin|net_bind_service|net_broadcast|net_raw|setfcap|setgid|setpcap|setuid|syslog|sys_admin|sys_boot|sys_chroot|sys_module|sys_nice|sys_pacct|sys_ptrace|sys_rawio|sys_resource|sys_time|sys_tty_config|wake_alarm)\s+)*(audit_control|audit_read|audit_write|block_suspend|chown|dac_override|dac_read_search|fowner|fsetid|ipc_lock|ipc_owner|kill|lease|linux_immutable|mac_admin|mac_override|mknod|net_admin|net_bind_service|net_broadcast|net_raw|setfcap|setgid|setpcap|setuid|syslog|sys_admin|sys_boot|sys_chroot|sys_module|sys_nice|sys_pacct|sys_ptrace|sys_rawio|sys_resource|sys_time|sys_tty_config|wake_alarm)\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdCapKey,sdCapDanger,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -" all capabilities ('capability' without any keyword) -syn match sdCapDanger /\v^\s*(audit\s+)?(deny\s+|allow\s+)?capability\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" Network line -" Syntax: network domain (inet, ...) type (stream, ...) protocol (tcp, ...) -" TODO: 'owner' isn't supported, but will be (JJ, 2011-01-11) -syn match sdNetwork /\v^\s*(audit\s+)?(deny\s+|allow\s+)?network(\s+(unix|inet|ax25|ipx|appletalk|netrom|bridge|atmpvc|x25|inet6|rose|netbeui|security|key|netlink|packet|ash|econet|atmsvc|rds|sna|irda|pppox|wanpipe|llc|can|tipc|bluetooth|iucv|rxrpc|isdn|phonet|ieee802154|caif|alg|nfc|vsock))?(\s+(stream|dgram|seqpacket|rdm|packet))?(\s+tcp|\s+udp|\s+icmp)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -" network rules containing 'raw' -syn match sdNetworkDanger /\v^\s*(audit\s+)?(deny\s+|allow\s+)?network(\s+(unix|inet|ax25|ipx|appletalk|netrom|bridge|atmpvc|x25|inet6|rose|netbeui|security|key|netlink|packet|ash|econet|atmsvc|rds|sna|irda|pppox|wanpipe|llc|can|tipc|bluetooth|iucv|rxrpc|isdn|phonet|ieee802154|caif|alg|nfc|vsock))?(\s+(raw))(\s+tcp|\s+udp|\s+icmp)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -" 'all networking' includes raw -> mark as dangerous -syn match sdNetworkDanger /\v^\s*(audit\s+)?(deny\s+|allow\s+)?network\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - - -" Change Profile -" TODO: audit and deny support will be added (JJ, 2011-01-11) -syn match sdEntryChangeProfile /\v^\s*change_profile\s+-\>\s+\S+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - - -" rlimit -" TODO: audit and deny support will be added (JJ, 2011-01-11) -" -"syn match sdRLimit /\v^\s*rlimit\s+()\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment -syn match sdRLimit /\v^\s*set\s+rlimit\s+(nofile|ofile|nproc|rtprio)\s+\<\=\s+[0-9]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment -syn match sdRLimit /\v^\s*set\s+rlimit\s+(locks|sigpending)\s+\<\=\s+[0-9]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment -syn match sdRLimit /\v^\s*set\s+rlimit\s+(fsize|data|stack|core|rss|as|memlock|msgqueue)\s+\<\=\s+[0-9]+([KMG]B)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment -syn match sdRLimit /\v^\s*set\s+rlimit\s+nice\s+\<\=\s+(-1?[0-9]|-20|1?[0-9])\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment -syn match sdRLimit /\v^\s*set\s+rlimit\s+cpu\s+\<\=\s+[0-9]+(seconds|minutes|hours|days)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment -syn match sdRLimit /\v^\s*set\s+rlimit\s+rttime\s+\<\=\s+[0-9]+(ms|seconds|minutes)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment -syn match sdRLimit /\v^\s*set\s+rlimit\s+(cpu|rttime|nofile|nproc|rtprio|locks|sigpending|fsize|data|stack|core|rss|as|memlock|msgqueue|nice)\s+\<\=\s+infinity\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment - -" link rules -syn match sdEntryW /\v^\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?link\s+(subset\s+)?(\/|\@\{\S*\})\S*\s+-\>\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob - - -syn match sdExtHat /\v^\s+(\^|profile\s+)\S+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment " hat without {...} - - - - -syn match sdProfileName /\v^((profile\s+)?\/\S+|profile\s+([a-zA-Z0-9]\S*\s)?\S+)\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ contains=sdProfileStart,sdHatName,sdFlags,sdComment,sdGlob -syn match sdProfileStart /{/ contained -syn match sdProfileEnd /^}\s*(#.*)?$/ contained " TODO: syn region does not (yet?) allow usage of comment in end= - " TODO: Removing the $ mark from end= will allow non-comments also :-( -syn match sdHatName /\v^\s+(\^|profile\s+)\S+\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ contains=sdProfileStart,sdFlags,sdComment -syn match sdHatStart /{/ contained -syn match sdHatEnd /}/ contained " TODO: allow comments + [same as for syn match sdProfileEnd] -syn match sdFlags /\v((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)/ contained contains=sdFlagKey - -syn match sdComment /\s*#.*$/ -" NOTE: contains=sdComment changes #include highlighting to comment color. -" NOTE: Comment highlighting still works without contains=sdComment. -syn match sdInclude /\s*#include\s<\S*>/ " TODO: doesn't check until $ -syn match sdInclude /\s*include\s<\S*>/ " TODO: doesn't check until $ - -" basic profile block... -" \s+ does not work in end=, therefore using \s\s* -syn region Normal start=/\v^(profile\s+)?\S+\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ matchgroup=sdProfileEnd end=/^}\s*$/ contains=sdProfileName,Hat,@sdEntry,sdComment,sdError,sdInclude -syn region Hat start=/\v^\s+(\^|profile\s+)\S+\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ matchgroup=sdHatEnd end=/^\s\s*}\s*$/ contains=sdHatName,@sdEntry,sdComment,sdError,sdInclude - -" file permissions - - - - - -" file rules added with create_file_rule() - -" write + exec/mmap - danger! (known bug: accepts aw to keep things simple) -syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" ux(mr) - unconstrained entry, flag the line red. also includes pux which is unconstrained if no profile exists -syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" Ux(mr) and PUx(mr) - like ux + clean environment -syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" px/cx/pix/cix(mrk) - standard exec entry, flag the line blue -syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" Px/Cx/Pix/Cix(mrk) - like px/cx + clean environment -syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" ix(mr) - standard exec entry, flag the line green -syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" mr - mmap with PROT_EXEC -syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" special case: deny x is allowed (does not need to be ix, px, ux or cx) -syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" write + append is an error -syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" write entry, flag the line yellow -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|w|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|w|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" append entry, flag the line yellow -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|a|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|a|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|a|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|a|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" read entry + locking, currently no highlighting -syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rlk]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rlk]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rlk]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rlk]+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude - -" read entry, no highlighting -syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rl]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rl]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rl]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rl]+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude -