diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 01d4b7b..84ebe07 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -11,6 +11,7 @@ require "user.cmp" require "user.colorizer" require "user.comment" require "user.dressing" +require "user.dial" require "user.fidget" require "user.functions" require "user.gitsigns" @@ -34,3 +35,5 @@ require "user.bufferline" require "user.winbar" require "user.zk" require "user.tabout" +require "user.cybu" +require "user.dap" diff --git a/.config/nvim/lua/user/keymaps.lua b/.config/nvim/lua/user/keymaps.lua index 23d1f82..369dc83 100644 --- a/.config/nvim/lua/user/keymaps.lua +++ b/.config/nvim/lua/user/keymaps.lua @@ -20,8 +20,8 @@ map("n", "", '"+y', opts) map("n", "", ":w", opts) -- Switch between buffers -map("n", "", ":bnext", opts) -map("n", "", ":bprevious", opts) +map("n", "", ":CybuNext", opts) +map("n", "", ":CybuPrev", opts) -- Show definition map("n", "", ":lua vim.lsp.buf.hover()", opts) diff --git a/.config/nvim/lua/user/lsp/handlers.lua b/.config/nvim/lua/user/lsp/handlers.lua index d2af95a..9930ec8 100644 --- a/.config/nvim/lua/user/lsp/handlers.lua +++ b/.config/nvim/lua/user/lsp/handlers.lua @@ -14,7 +14,6 @@ M.capabilities = cmp_nvim_lsp.update_capabilities(M.capabilities) M.setup = function() local icons = require "user.icons" local signs = { - { name = "DiagnosticSignError", text = icons.diagnostics.Error }, { name = "DiagnosticSignWarn", text = icons.diagnostics.Warning }, { name = "DiagnosticSignHint", text = icons.diagnostics.Hint }, @@ -22,7 +21,9 @@ M.setup = function() } for _, sign in ipairs(signs) do - vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) + vim.fn.sign_define(sign.name, { + texthl = sign.name, text = sign.text, numhl = "" + }) end local config = { @@ -62,13 +63,15 @@ M.setup = function() vim.diagnostic.config(config) - vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { + vim.lsp.handlers["textDocument/hover"] = + vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded", -- width = 60, -- height = 30, }) - vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { + vim.lsp.handlers["textDocument/signatureHelp"] = + vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded", -- width = 60, -- height = 30, @@ -93,7 +96,6 @@ local function lsp_keymaps(bufnr) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gI", "Telescope lsp_implementations", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "Telescope lsp_references", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gl", "lua vim.diagnostic.open_float()", opts) - -- vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format({ async = true })' ]] -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gs", "lua vim.lsp.buf.signature_help()", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "", "Format", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.code_action()", opts) @@ -104,6 +106,7 @@ local function lsp_keymaps(bufnr) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", 'lua vim.diagnostic.goto_prev({ border = "rounded" })', opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", 'lua vim.diagnostic.goto_next({ border = "rounded" })', opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.diagnostic.setloclist()", opts) + -- vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format({ async = true })' ]] end M.on_attach = function(client, bufnr) diff --git a/.config/nvim/lua/user/lsp/init.lua b/.config/nvim/lua/user/lsp/init.lua index 7e736c0..6d28657 100644 --- a/.config/nvim/lua/user/lsp/init.lua +++ b/.config/nvim/lua/user/lsp/init.lua @@ -8,10 +8,9 @@ end -- may add signature in future. -- require "user.lsp.lsp-signature" -require("user.lsp.mason") -require("user.lsp.handlers").setup() --- may add null-ls in future. --- require "user.lsp.null-ls" +require "user.lsp.mason" +require "user.lsp.handlers".setup() +require "user.lsp.null-ls" local l_status_ok, lsp_lines = pcall(require, "lsp_lines") if not l_status_ok then diff --git a/.config/nvim/lua/user/lsp/mason.lua b/.config/nvim/lua/user/lsp/mason.lua index 1dd0ac7..ce99fb0 100644 --- a/.config/nvim/lua/user/lsp/mason.lua +++ b/.config/nvim/lua/user/lsp/mason.lua @@ -1,152 +1,143 @@ local status_ok, mason = pcall(require, "mason") if not status_ok then - return + return end local status_ok_1, mason_lspconfig = pcall(require, "mason-lspconfig") if not status_ok_1 then - return + return end local servers = { - "cssls", - "cssmodules_ls", - "emmet_ls", - "html", - "jdtls", - "solc", - "solidity_ls", - "sumneko_lua", - "omnisharp", - "tflint", - "terraformls", - "tsserver", - "pyright", - "yamlls", - "bashls", - "clangd", - "rust_analyzer", - "taplo", - "zk@v0.10.1", - "lemminx", - "clangd" + "cssls", + "cssmodules_ls", + "emmet_ls", + "html", + "jdtls", + "solc", + "solidity_ls", + "sumneko_lua", + "omnisharp", + "tflint", + "terraformls", + "tsserver", + "pyright", + "yamlls", + "bashls", + "clangd", + "rust_analyzer", + "taplo", + "zk@v0.10.1", + "lemminx", + "clangd", } local settings = { - ui = { - border = "rounded", - icons = { - package_installed = "◍", - package_pending = "◍", - package_uninstalled = "◍", - }, - }, - log_level = vim.log.levels.INFO, - max_concurrent_installers = 4, + ui = { + border = "rounded", + icons = { + package_installed = "◍", + package_pending = "◍", + package_uninstalled = "◍", + }, + }, + log_level = vim.log.levels.INFO, + max_concurrent_installers = 4, } mason.setup(settings) -mason_lspconfig.setup { - ensure_installed = servers, - automatic_installation = true, -} +mason_lspconfig.setup({ + ensure_installed = servers, + automatic_installation = true, +}) local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") if not lspconfig_status_ok then - print "lspconfig error!" - return + print("lspconfig error!") + return end local opts = {} for _, server in pairs(servers) do - opts = { - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - } + opts = { + on_attach = require("user.lsp.handlers").on_attach, + capabilities = require("user.lsp.handlers").capabilities, + } - server = vim.split(server, "@")[1] + server = vim.split(server, "@")[1] - if server == "yamlls" then - local yamlls_opts = require "user.lsp.settings.yamlls" - opts = vim.tbl_deep_extend("force", yamlls_opts, opts) - end + if server == "yamlls" then + local yamlls_opts = require("user.lsp.settings.yamlls") + opts = vim.tbl_deep_extend("force", yamlls_opts, opts) + end - if server == "sumneko_lua" then - local l_status_ok, lua_dev = pcall(require, "lua-dev") - if not l_status_ok then - return - end - -- local sumneko_opts = require "user.lsp.settings.sumneko_lua" - -- opts = vim.tbl_deep_extend("force", sumneko_opts, opts) - -- opts = vim.tbl_deep_extend("force", require("lua-dev").setup(), opts) - local luadev = lua_dev.setup { - -- -- add any options here, or leave empty to use the default settings - -- lspconfig = opts, - lspconfig = { - on_attach = opts.on_attach, - capabilities = opts.capabilities, - -- -- settings = opts.settings, - }, - } - lspconfig.sumneko_lua.setup(luadev) - goto continue - end + if server == "sumneko_lua" then + local l_status_ok, lua_dev = pcall(require, "lua-dev") + if not l_status_ok then + return + end + local luadev = lua_dev.setup({ + lspconfig = { + on_attach = opts.on_attach, + capabilities = opts.capabilities, + }, + }) + lspconfig.sumneko_lua.setup(luadev) + goto continue + end - if server == "tsserver" then - local tsserver_opts = require "user.lsp.settings.tsserver" - opts = vim.tbl_deep_extend("force", tsserver_opts, opts) - end + if server == "tsserver" then + local tsserver_opts = require("user.lsp.settings.tsserver") + opts = vim.tbl_deep_extend("force", tsserver_opts, opts) + end - if server == "pyright" then - local pyright_opts = require "user.lsp.settings.pyright" - opts = vim.tbl_deep_extend("force", pyright_opts, opts) - end + if server == "pyright" then + local pyright_opts = require("user.lsp.settings.pyright") + opts = vim.tbl_deep_extend("force", pyright_opts, opts) + end - if server == "solc" then - local solc_opts = require "user.lsp.settings.solc" - opts = vim.tbl_deep_extend("force", solc_opts, opts) - end + if server == "solc" then + local solc_opts = require("user.lsp.settings.solc") + opts = vim.tbl_deep_extend("force", solc_opts, opts) + end - if server == "clangd" then - local clangd_opts = require "user.lsp.settings.clangd" - opts = vim.tbl_deep_extend("force", clangd_opts, opts) - end + if server == "clangd" then + local clangd_opts = require("user.lsp.settings.clangd") + opts = vim.tbl_deep_extend("force", clangd_opts, opts) + end - if server == "emmet_ls" then - local emmet_ls_opts = require "user.lsp.settings.emmet_ls" - opts = vim.tbl_deep_extend("force", emmet_ls_opts, opts) - end + if server == "emmet_ls" then + local emmet_ls_opts = require("user.lsp.settings.emmet_ls") + opts = vim.tbl_deep_extend("force", emmet_ls_opts, opts) + end - if server == "zk" then - local zk_opts = require "user.lsp.settings.zk" - opts = vim.tbl_deep_extend("force", zk_opts, opts) - end + if server == "zk" then + local zk_opts = require("user.lsp.settings.zk") + opts = vim.tbl_deep_extend("force", zk_opts, opts) + end - if server == "jdtls" then - goto continue - end + if server == "jdtls" then + goto continue + end - if server == "rust_analyzer" then - local rust_opts = require "user.lsp.settings.rust" - -- opts = vim.tbl_deep_extend("force", rust_opts, opts) - local rust_tools_status_ok, rust_tools = pcall(require, "rust-tools") - if not rust_tools_status_ok then - return - end + if server == "rust_analyzer" then + local rust_opts = require("user.lsp.settings.rust") + -- opts = vim.tbl_deep_extend("force", rust_opts, opts) + local rust_tools_status_ok, rust_tools = pcall(require, "rust-tools") + if not rust_tools_status_ok then + return + end - rust_tools.setup(rust_opts) - goto continue - end + rust_tools.setup(rust_opts) + goto continue + end - if server == "omnisharp" then - local omnisharp_opts = require "user.lsp.settings.omnisharp" - opts = vim.tbl_deep_extend("force", omnisharp_opts, opts) - end + if server == "omnisharp" then + local omnisharp_opts = require("user.lsp.settings.omnisharp") + opts = vim.tbl_deep_extend("force", omnisharp_opts, opts) + end - lspconfig[server].setup(opts) - ::continue:: + lspconfig[server].setup(opts) + ::continue:: end - --- TODO: add something to installer later --- require("lspconfig").motoko.setup {} diff --git a/.config/nvim/lua/user/lsp/settings/omnisharp.lua b/.config/nvim/lua/user/lsp/settings/omnisharp.lua index 68bd5f2..aa22e5d 100644 --- a/.config/nvim/lua/user/lsp/settings/omnisharp.lua +++ b/.config/nvim/lua/user/lsp/settings/omnisharp.lua @@ -1,11 +1,38 @@ --- local pid = vim.fn.getpid() --- local omnisharp_bin = "/home/josh/.local/share/nvim/lsp_servers/omnisharp/omnisharp/OmniSharp.dll" +return { + cmd = { "omnisharp" }, -return { - -- cmd = { omnisharp_bin, "--languageserver" , "--hostPID", tostring(pid) }, - omnisharp = { - useModernNet = true, - semanticHighlighting = false, - -- monoPath = "/usr/bin/mono" - } + -- Enables support for reading code style, naming convention and analyzer + -- settings from .editorconfig. + enable_editorconfig_support = true, + + -- If true, MSBuild project system will only load projects for files that + -- were opened in the editor. This setting is useful for big C# codebases + -- and allows for faster initialization of code navigation features only + -- for projects that are relevant to code that is being edited. With this + -- setting enabled OmniSharp may load fewer projects and may thus display + -- incomplete reference lists for symbols. + enable_ms_build_load_projects_on_demand = false, + + -- Enables support for roslyn analyzers, code fixes and rulesets. + enable_roslyn_analyzers = true, + + -- Specifies whether 'using' directives should be grouped and sorted during + -- document formatting. + organize_imports_on_format = false, + + -- Enables support for showing unimported types and unimported extension + -- methods in completion lists. When committed, the appropriate using + -- directive will be added at the top of the current file. This option can + -- have a negative impact on initial completion responsiveness, + -- particularly for the first few completion sessions after opening a + -- solution. + enable_import_completion = false, + + -- Specifies whether to include preview versions of the .NET SDK when + -- determining which version to use for project loading. + sdk_include_prereleases = true, + + -- Only run analyzers against open files when 'enableRoslynAnalyzers' is + -- true + analyze_open_documents_only = false, } diff --git a/.config/nvim/lua/user/options.lua b/.config/nvim/lua/user/options.lua index 56269cb..4f63923 100644 --- a/.config/nvim/lua/user/options.lua +++ b/.config/nvim/lua/user/options.lua @@ -1,6 +1,6 @@ local options = { backup = false, -- creates a backup file - clipboard = "unnamedplus", -- gives nvim access to clipboard + -- clipboard = "unnamedplus", -- gives nvim access to clipboard cmdheight = 1, -- more space in nvim cmd line completeopt = { "menuone", "noselect" }, -- cmp related conceallevel = 0, -- don't hide `` in md @@ -37,6 +37,7 @@ local options = { sidescrolloff = 8, guifont = "monospace:h17", title = true, + spelllang = "en_us", } vim.opt.fillchars = vim.opt.fillchars + 'eob: ' @@ -50,3 +51,15 @@ end vim.cmd "set whichwrap+=<,>,[,],h,l" vim.cmd "set colorcolumn=80" vim.cmd [[set iskeyword+=-]] + +vim.g.gutentags_generate_on_new = 1 +vim.g.gutentags_generate_on_write = 1 +vim.g.gutentags_generate_on_missing = 1 +vim.g.gutentags_generate_on_empty_buffer = 0 + +-- Disable snipmate plugins to avoid duplicate snippets +vim.g.UltiSnipsEnableSnipMate = 0 +vim.g.UltiSnipsRemoveSelectModeMappings = 0 +vim.g.UltiSnipsExpandTrigger = "" +vim.g.UltiSnipsJumpForwardTrigger = "" +vim.g.UltiSnipsJumpBackwardTrigger = "" diff --git a/.config/nvim/lua/user/plugins.lua b/.config/nvim/lua/user/plugins.lua index 1944b08..7d8773b 100644 --- a/.config/nvim/lua/user/plugins.lua +++ b/.config/nvim/lua/user/plugins.lua @@ -1,164 +1,172 @@ local fn = vim.fn -- Automatically install packer -local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim" +local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" if fn.empty(fn.glob(install_path)) > 0 then - PACKER_BOOTSTRAP = fn.system { - "git", - "clone", - "--depth", - "1", - "https://github.com/wbthomason/packer.nvim", - install_path, - } - print "Installing packer, please close and reopen Neovim..." - vim.cmd [[packadd packer.nvim]] + PACKER_BOOTSTRAP = fn.system({ + "git", + "clone", + "--depth", + "1", + "https://github.com/wbthomason/packer.nvim", + install_path, + }) + print("Installing packer, please close and reopen Neovim...") + vim.cmd([[packadd packer.nvim]]) end -- Autocommand to reload neovime whenever this file is saved. -vim.cmd [[ +vim.cmd([[ augroup packer_user_config autocmd! autocmd BufWritePost plugins.lua source | PackerSync augroup end -]] +]]) -- use a protected call so there's no error on first use local s_ok, packer = pcall(require, "packer") if not s_ok then - return + return end -- Have packer use a popup -packer.init { - max_jobs = 50, - display = { - open_fn = function() - return require("packer.util").float { border = "rounded" } - end, - prompt_border = "rounded" - }, -} +packer.init({ + max_jobs = 50, + display = { + open_fn = function() + return require("packer.util").float({ border = "rounded" }) + end, + prompt_border = "rounded", + }, +}) -- Add plugins from here return packer.startup(function(use) - -- Plugin manager - use "wbthomason/packer.nvim" -- Have packer manage inself - - -- Lua Development - use "nvim-lua/plenary.nvim" -- useful lua functions - use "nvim-lua/popup.nvim" - use "folke/lua-dev.nvim" - - -- LSP - use "neovim/nvim-lspconfig" -- enable LSP - use "williamboman/mason.nvim" -- language server manager/installer - use "williamboman/mason-lspconfig.nvim" - use "j-hui/fidget.nvim" -- displays lsp progress in bottom right - use "SmiteshP/nvim-navic" -- integrates with winbar to show location in program e.g.: MyClass > MyFunc > MyProperty - use "simrat39/symbols-outline.nvim" -- class explorer for nvim - use "folke/trouble.nvim" -- view lsp diagnostics - use "OmniSharp/omnisharp-vim" - use "https://git.sr.ht/~whynothugo/lsp_lines.nvim" - require('packer').use({ - 'weilbith/nvim-code-action-menu', - cmd = 'CodeActionMenu', - }) - - -- Completion - use "hrsh7th/nvim-cmp" -- completion engine - use "hrsh7th/cmp-buffer" -- buffer completions - use "hrsh7th/cmp-path" -- path completions - use "hrsh7th/cmp-nvim-lsp" -- lsp completions - use "hrsh7th/cmp-nvim-lua" - use "saadparwaiz1/cmp_luasnip" -- snippet completions - - -- Snippet - use "L3MON4D3/LuaSnip" -- snippet engine - use "rafamadriz/friendly-snippets" -- a collection of useful snippets - - -- Syntax/Treesitter - use "nvim-treesitter/nvim-treesitter" - use "nvim-treesitter/playground" - - -- CEO of The Startup - use "ThePrimeagen/harpoon" - - -- Telescopic Johnston - use "nvim-telescope/telescope.nvim" - use "nvim-telescope/telescope-media-files.nvim" - - -- Note Taking - use "mickael-menu/zk-nvim" - - -- Colour - use "NvChad/nvim-colorizer.lua" - - -- Colorschemes - use "folke/tokyonight.nvim" - use "sainnhe/gruvbox-material" - use "sainnhe/sonokai" - use "dracula/vim" - use "RRethy/nvim-base16" - - -- Utility - use "rcarriga/nvim-notify" - use "stevearc/dressing.nvim" - use "moll/vim-bbye" - use "lewis6991/impatient.nvim" - - -- Icons - use "kyazdani42/nvim-web-devicons" - - -- Debugging - -- Also add later. - - -- Tabline - use "akinsho/bufferline.nvim" - use "fgheng/winbar.nvim" - - -- Statusline - use "nvim-lualine/lualine.nvim" - - -- Startup - use "goolord/alpha-nvim" - - -- Indent - use "lukas-reineke/indent-blankline.nvim" - - -- File Explorer - use "kyazdani42/nvim-tree.lua" - - -- Comments - use "numToStr/Comment.nvim" - use "folke/todo-comments.nvim" - - -- Terminal - use "akinsho/toggleterm.nvim" - - -- Git - use "lewis6991/gitsigns.nvim" - use "f-person/git-blame.nvim" - - -- Editing Support - use "windwp/nvim-autopairs" - use "vimwiki/vimwiki" - use "folke/zen-mode.nvim" - use "junegunn/vim-slash" - use "andymass/vim-matchup" - use "nacro90/numb.nvim" - use "monaqa/dial.nvim" - use { - "abecodes/tabout.nvim", - wants = { "nvim-treesitter" } - } - use "windwp/nvim-spectre" - - -- Keybinding - use "folke/which-key.nvim" + -- Plugin manager + use("wbthomason/packer.nvim") -- Have packer manage inself - -- Automatically setup after cloning packer.nvim - if PACKER_BOOTSTRAP then - require("packer").sync() - end + -- Lua Development + use("nvim-lua/plenary.nvim") -- useful lua functions + use("nvim-lua/popup.nvim") + use("folke/lua-dev.nvim") + + -- LSP + use("neovim/nvim-lspconfig") -- enable LSP + use("williamboman/mason.nvim") -- language server manager/installer + use("williamboman/mason-lspconfig.nvim") + use("j-hui/fidget.nvim") -- displays lsp progress in bottom right + use("SmiteshP/nvim-navic") -- integrates with winbar to show location in program e.g.: MyClass > MyFunc > MyProperty + use("simrat39/symbols-outline.nvim") -- class explorer for nvim + use("folke/trouble.nvim") -- view lsp diagnostics + -- use "OmniSharp/omnisharp-vim" + use("https://git.sr.ht/~whynothugo/lsp_lines.nvim") + use({ + "weilbith/nvim-code-action-menu", + cmd = "CodeActionMenu", + }) + use("jose-elias-alvarez/null-ls.nvim") + + -- Completion + use("hrsh7th/nvim-cmp") -- completion engine + use("hrsh7th/cmp-buffer") -- buffer completions + use("hrsh7th/cmp-path") -- path completions + use("hrsh7th/cmp-nvim-lsp") -- lsp completions + use("hrsh7th/cmp-nvim-lua") + use("saadparwaiz1/cmp_luasnip") -- snippet completions + + -- LaTeX + -- use "SirVer/ultisnips" + use("lervag/vimtex") + use("ludovicchabant/vim-gutentags") + + -- Snippet + use("L3MON4D3/LuaSnip") -- snippet engine + use("rafamadriz/friendly-snippets") -- a collection of useful snippets + + -- Syntax/Treesitter + use("nvim-treesitter/nvim-treesitter") + use("nvim-treesitter/playground") + + -- CEO of The Startup + use("ThePrimeagen/harpoon") + + -- Telescopic Johnston + use("nvim-telescope/telescope.nvim") + use("nvim-telescope/telescope-media-files.nvim") + + -- Note Taking + use("mickael-menu/zk-nvim") + + -- Colour + use("NvChad/nvim-colorizer.lua") + + -- Colorschemes + use("folke/tokyonight.nvim") + use("sainnhe/gruvbox-material") + use("sainnhe/sonokai") + use("dracula/vim") + use("RRethy/nvim-base16") + + -- Utility + use("rcarriga/nvim-notify") + use("stevearc/dressing.nvim") + use("moll/vim-bbye") + use("lewis6991/impatient.nvim") + use("ghillb/cybu.nvim") + + -- Icons + use("kyazdani42/nvim-web-devicons") + + -- Debugging + use("mfussenegger/nvim-dap") + use("rcarriga/nvim-dap-ui") + + -- Tabline + use("akinsho/bufferline.nvim") + use("fgheng/winbar.nvim") + + -- Statusline + use("nvim-lualine/lualine.nvim") + + -- Startup + use("goolord/alpha-nvim") + + -- Indent + use("lukas-reineke/indent-blankline.nvim") + + -- File Explorer + use("kyazdani42/nvim-tree.lua") + + -- Comments + use("numToStr/Comment.nvim") + use("folke/todo-comments.nvim") + + -- Terminal + use("akinsho/toggleterm.nvim") + + -- Git + use("lewis6991/gitsigns.nvim") + use("f-person/git-blame.nvim") + + -- Editing Support + use("windwp/nvim-autopairs") + use("vimwiki/vimwiki") + use("folke/zen-mode.nvim") + use("junegunn/vim-slash") + use("andymass/vim-matchup") + use("nacro90/numb.nvim") + use("monaqa/dial.nvim") + use({ + "abecodes/tabout.nvim", + wants = { "nvim-treesitter" }, + }) + use("windwp/nvim-spectre") + + -- Keybinding + use("folke/which-key.nvim") + + -- Automatically setup after cloning packer.nvim + if PACKER_BOOTSTRAP then + require("packer").sync() + end end) diff --git a/.config/nvim/lua/user/whichkey.lua b/.config/nvim/lua/user/whichkey.lua index adaaf56..a980e2f 100644 --- a/.config/nvim/lua/user/whichkey.lua +++ b/.config/nvim/lua/user/whichkey.lua @@ -90,11 +90,11 @@ local m_mappings = { local mappings = { a = { "CodeActionMenu", "Action" }, c = { "Bdelete", "Close Buffer" }, - C = { "w! | !compiler %", "Compile File" }, + C = { "w! | !compiler %", "Compile File" }, h = { "split", "split" }, n = { "NvimTreeToggle", "Explorer" }, - O = { "setlocal spell! spellling=en_us", "Toggle Spelling" }, - P = { "!opout %", "Preview Document" }, + O = { "setlocal spell! spelllang=en_us", "Toggle Spelling" }, + P = { "!opout %", "Preview Document" }, q = { 'lua require("user.functions").smart_quit()', "Quit" }, v = { "vsplit", "vsplit" }, w = { "w", "Write" }, @@ -138,19 +138,18 @@ local mappings = { f = { "lua require('spectre').open_file_search()", "Replace Buffer" }, }, - -- perhaps I will set this up in the future? - -- d = { - -- name = "Debug", - -- b = { "lua require'dap'.toggle_breakpoint()", "Breakpoint" }, - -- c = { "lua require'dap'.continue()", "Continue" }, - -- i = { "lua require'dap'.step_into()", "Into" }, - -- o = { "lua require'dap'.step_over()", "Over" }, - -- O = { "lua require'dap'.step_out()", "Out" }, - -- r = { "lua require'dap'.repl.toggle()", "Repl" }, - -- l = { "lua require'dap'.run_last()", "Last" }, - -- u = { "lua require'dapui'.toggle()", "UI" }, - -- x = { "lua require'dap'.terminate()", "Exit" }, - -- }, + d = { + name = "Debug", + b = { "lua require'dap'.toggle_breakpoint()", "Breakpoint" }, + c = { "lua require'dap'.continue()", "Continue" }, + i = { "lua require'dap'.step_into()", "Into" }, + o = { "lua require'dap'.step_over()", "Over" }, + O = { "lua require'dap'.step_out()", "Out" }, + r = { "lua require'dap'.repl.toggle()", "Repl" }, + l = { "lua require'dap'.run_last()", "Last" }, + u = { "lua require'dapui'.toggle()", "UI" }, + x = { "lua require'dap'.terminate()", "Exit" }, + }, f = { name = "Find", diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index fab5160..142c844 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -88,6 +88,7 @@ lfcd() { } bindkey -s '^o' '^ulfcd\n' +bindkey -s '^t' '^utms\n' if [ -f /etc/hostname ]; then HOST=$(cat /etc/hostname) diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs index e78ed4f..15dbc8f 100644 --- a/.xmonad/xmonad.hs +++ b/.xmonad/xmonad.hs @@ -114,7 +114,7 @@ colorYellow = "#f1fa8c" -- The preferred terminal program, which is used in a binding below and by -- certain contrib modules. myTerminal :: String -myTerminal = "alacritty" +myTerminal = "st" myFileManager :: String myFileManager = "thunar" @@ -139,7 +139,7 @@ myClickJustFocuses = False -- Width of the window border in pixels. myBorderWidth :: Dimension -myBorderWidth = 0 +myBorderWidth = 2 -- Border colors for unfocused and focused windows, respectively. myNormalBorderColor :: String @@ -547,7 +547,7 @@ myManageHook = composeAll , className =? "slack" --> doShift ( myWorkspaces !! (8-1) ) , className =? "Pavucontrol" --> doShift ( myWorkspaces !! (6-1) ) , className =? "plexamp" --> doShift ( myWorkspaces !! (6-1) ) - , className =? "Jellyfin Media Player" --> doShift ( myWorkspaces !! (7-1) ) + , className =? "Jellyfin Media Player" --> doShift ( myWorkspaces !! (6-1) ) , className =? "thunderbird" --> doShift ( myWorkspaces !! (9-1) ) ] diff --git a/README.md b/README.md index 2c5156e..bc78e5f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,79 @@ -My Dotfiles, managed using the following tutorial: +# Inkletblot's Dotfiles -https://www.atlassian.com/git/tutorials/dotfiles +My Dotfiles, managed using (what I call) the [atlassian method](https://www.atlassian.com/git/tutorials/dotfiles). + +Primarily the configs I care about in here are for the following programs. +- [neovim](#Neovim) +- xmonad +- Xmobar +- lf +- tmux +- zsh +- system stuff such as xinitrc, shell, xprofile, and more. + +Supporting programs include: +- alacritty +- dmenu +- picom +- dunst +- fish (I no longer use this) +- mutt (this either) +- newsboat (or this) + +I have been building up this envirnoment for some time and it is likely to +change much in the future. + +### Related works + +I have a few repositories that pair with this one, primarily are both my scripts +repo and my dmenu fork. I use dmenu as my run launcher and I have myriad bash +scripts to make my linux experience my own. I also dabble with DWM and it's +related programs such as st, dwmblocks, and others. + +- [Scripts](https://gitlab.inkletblot.com/inkletblot/inks-scripts) +- [dmenu](https://gitlab.inkletblot.com/inkletblot/dmenu-inkletblot) + +Tangentially to all this I have a WIP repo I call ink-os which will set up a +fresh install of Arch with all of my default programs, my dotfiles, and other +misc configs. It doesn't technically 'work' but it's still easier that a manual +setup for me. + +### Credit + +Although I will happily take credit for what I have built here I would like to +credit those who inspired me, or who I pilfered directly from: + +- [Luke Smith](https://lukesmith.xyz) for many scripts, mutt, introducing me to vim, and much of my shell config. +- [DistroTube (Derek Taylor)](https://distro.tube/index.html) for introducing me to tiling window managers and reigniting my love for linux, also much of my xmonad, xmobar, fish, and alacritty configs were inspired by his. +- [ThePrimeagen](https://github.com/ThePrimeagen) for improving my developer workflow, introducing me to tmux (and being a source for my tmux scripts), and being generally a great guy. +- [chris@machine (Christian Chiarulli)](https://github.com/ChristianChiarulli), I credit 90% of my neovim config to this man and it's great. +- And others such as [TJ Devries](https://github.com/tjdevries/), [Eric Murphy](https://www.youtube.com/c/EricMurphyxyz), [EF Linux Made Simple](https://www.youtube.com/c/EFLinuxMadeSimple/featured), and more. + +## Neovim (nightly) + +Probably the most complicated part of this is my nvim config, I should probably +move it to it's own folder at some point. + +It depends on a few different language servers and miscellaneous programs. +Including but not limited to: + +- pyright +- npm/nodejs +- omnisharp-roslyn (and by proxy, dotnet) +- pandoc +- miktex +- mono (Not currently sure about this one, I think I removed it) +- git +- and more... + +## xmonad + +## xmobar + +## lf + +## tmux + +## zsh + +## system