mirror of
https://github.com/tedkulp/dotfiles
synced 2026-04-21 22:24:44 -04:00
More stuff
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
--[[
|
||||
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 = true
|
||||
lvim.colorscheme = "onedarker"
|
||||
|
||||
-- keymappings [view all the defaults by pressing <leader>Lk]
|
||||
lvim.leader = "space"
|
||||
-- add your own keymapping
|
||||
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"
|
||||
|
||||
-- unmap a default keymapping
|
||||
-- lvim.keys.normal_mode["<C-Up>"] = ""
|
||||
-- edit a default keymapping
|
||||
-- lvim.keys.normal_mode["<C-q>"] = ":q<cr>"
|
||||
|
||||
-- Change Telescope navigation to use j and k for navigation and n and p for history in both input and normal mode.
|
||||
-- lvim.builtin.telescope.on_config_done = function()
|
||||
-- local actions = require "telescope.actions"
|
||||
-- -- for input mode
|
||||
-- lvim.builtin.telescope.defaults.mappings.i["<C-j>"] = actions.move_selection_next
|
||||
-- lvim.builtin.telescope.defaults.mappings.i["<C-n>"] = actions.cycle_history_next
|
||||
-- lvim.builtin.telescope.defaults.mappings.i["<C-k>"] = actions.move_selection_previous
|
||||
-- lvim.builtin.telescope.defaults.mappings.i["<C-p>"] = actions.cycle_history_prev
|
||||
-- -- for normal mode
|
||||
-- lvim.builtin.telescope.defaults.mappings.n["<C-j>"] = actions.move_selection_next
|
||||
-- lvim.builtin.telescope.defaults.mappings.n["<C-k>"] = actions.move_selection_previous
|
||||
-- end
|
||||
|
||||
-- Use which-key to add extra bindings with the leader-key prefix
|
||||
-- lvim.builtin.which_key.mappings["P"] = { "<cmd>Telescope projects<CR>", "Projects" }
|
||||
-- lvim.builtin.which_key.mappings["t"] = {
|
||||
-- name = "+Trouble",
|
||||
-- r = { "<cmd>Trouble lsp_references<cr>", "References" },
|
||||
-- f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" },
|
||||
-- d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnostics" },
|
||||
-- q = { "<cmd>Trouble quickfix<cr>", "QuickFix" },
|
||||
-- l = { "<cmd>Trouble loclist<cr>", "LocationList" },
|
||||
-- w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnostics" },
|
||||
-- }
|
||||
|
||||
-- TODO: User Config for predefined plugins
|
||||
-- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile
|
||||
lvim.builtin.dashboard.active = true
|
||||
lvim.builtin.terminal.active = true
|
||||
lvim.builtin.lualine.active = true
|
||||
lvim.builtin.dap.active = true
|
||||
-- lvim.builtin.bufferline = true
|
||||
lvim.builtin.nvimtree.side = "left"
|
||||
lvim.builtin.nvimtree.show_icons.git = 1
|
||||
|
||||
-- if you don't want all the parsers change this to a table of the ones you want
|
||||
lvim.builtin.treesitter.ensure_installed = "maintained"
|
||||
lvim.builtin.treesitter.ignore_install = { "haskell" }
|
||||
lvim.builtin.treesitter.highlight.enabled = true
|
||||
|
||||
-- generic LSP settings
|
||||
-- you can set a custom on_attach function that will be used for all the language servers
|
||||
-- See <https://github.com/neovim/nvim-lspconfig#keybindings-and-completion>
|
||||
-- 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 <c-x><c-o>
|
||||
-- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
|
||||
-- end
|
||||
-- you can overwrite the null_ls setup table (useful for setting the root_dir function)
|
||||
-- lvim.lsp.null_ls.setup = {
|
||||
-- root_dir = require("lspconfig").util.root_pattern("Makefile", ".git", "node_modules"),
|
||||
-- }
|
||||
-- or if you need something more advanced
|
||||
-- lvim.lsp.null_ls.setup.root_dir = function(fname)
|
||||
-- if vim.bo.filetype == "javascript" then
|
||||
-- return require("lspconfig/util").root_pattern("Makefile", ".git", "node_modules")(fname)
|
||||
-- or require("lspconfig/util").path.dirname(fname)
|
||||
-- elseif vim.bo.filetype == "php" then
|
||||
-- return require("lspconfig/util").root_pattern("Makefile", ".git", "composer.json")(fname) or vim.fn.getcwd()
|
||||
-- else
|
||||
-- return require("lspconfig/util").root_pattern("Makefile", ".git")(fname) or require("lspconfig/util").path.dirname(fname)
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- set a formatter if you want to override the default lsp one (if it exists)
|
||||
-- lvim.lang.python.formatters = {
|
||||
-- {
|
||||
-- exe = "black",
|
||||
-- }
|
||||
-- }
|
||||
-- set an additional linter
|
||||
-- lvim.lang.python.linters = {
|
||||
-- {
|
||||
-- exe = "flake8",
|
||||
-- }
|
||||
-- }
|
||||
|
||||
vim.cmd("set timeoutlen=500")
|
||||
|
||||
-- Additional Plugins
|
||||
lvim.plugins = {
|
||||
{
|
||||
"p00f/nvim-ts-rainbow",
|
||||
},
|
||||
{ "tpope/vim-repeat" },
|
||||
{
|
||||
"tpope/vim-surround",
|
||||
keys = {"c", "d", "y"}
|
||||
},
|
||||
{
|
||||
"metakirby5/codi.vim",
|
||||
cmd = "Codi",
|
||||
},
|
||||
{
|
||||
"monaqa/dial.nvim",
|
||||
event = "BufRead",
|
||||
config = function()
|
||||
local dial = require "dial"
|
||||
vim.cmd [[
|
||||
nmap <C-a> <Plug>(dial-increment)
|
||||
nmap <C-x> <Plug>(dial-decrement)
|
||||
vmap <C-a> <Plug>(dial-increment)
|
||||
vmap <C-x> <Plug>(dial-decrement)
|
||||
vmap g<C-a> <Plug>(dial-increment-additional)
|
||||
vmap g<C-x> <Plug>(dial-decrement-additional)
|
||||
]]
|
||||
|
||||
dial.augends["custom#boolean"] = dial.common.enum_cyclic {
|
||||
name = "boolean",
|
||||
strlist = { "true", "false" },
|
||||
}
|
||||
table.insert(dial.config.searchlist.normal, "custom#boolean")
|
||||
|
||||
-- For Languages which prefer True/False, e.g. python.
|
||||
dial.augends["custom#Boolean"] = dial.common.enum_cyclic {
|
||||
name = "Boolean",
|
||||
strlist = { "True", "False" },
|
||||
}
|
||||
table.insert(dial.config.searchlist.normal, "custom#Boolean")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"phaazon/hop.nvim",
|
||||
event = "BufRead",
|
||||
config = function()
|
||||
require("hop").setup()
|
||||
vim.api.nvim_set_keymap("n", "s", ":HopChar2<cr>", { silent = true })
|
||||
vim.api.nvim_set_keymap("n", "S", ":HopWord<cr>", { silent = true })
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
-- Autocommands (https://neovim.io/doc/user/autocmd.html)
|
||||
-- lvim.autocommands.custom_groups = {
|
||||
-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" },
|
||||
-- }
|
||||
|
||||
-- Typescript/javascript
|
||||
lvim.lang.typescript.formatters = { { exe = "eslint"}, { exe = "prettier" } }
|
||||
lvim.lang.typescriptreact.formatters = lvim.lang.typescript.formatters
|
||||
lvim.lang.typescript.linters = { { exe = "eslint" } }
|
||||
lvim.lang.typescriptreact.linters = lvim.lang.typescript.linters
|
||||
lvim.lang.javascript.formatters = { { exe = "eslint"}, { exe = "prettier" } }
|
||||
lvim.lang.javascriptreact.formatters = lvim.lang.javascript.formatters
|
||||
lvim.lang.javascript.linters = { { exe = "eslint" } }
|
||||
lvim.lang.javascriptreact.linters = lvim.lang.javascript.linters
|
||||
|
||||
-- JSON
|
||||
lvim.lang.json.formatters = { { exe = "prettier" } }
|
||||
|
||||
Reference in New Issue
Block a user