mirror of
https://github.com/davegallant/nix-config
synced 2025-08-06 07:13:40 +00:00
119 lines
4.0 KiB
Lua
119 lines
4.0 KiB
Lua
-- colours
|
|
vim.cmd[[colorscheme tokyonight]]
|
|
vim.g.tokyonight_style = "night"
|
|
vim.g.tokyonight_italic_functions = true
|
|
|
|
-- status line
|
|
require('lualine').setup {
|
|
options = {
|
|
theme = 'tokyonight'
|
|
}
|
|
}
|
|
|
|
-- lsp
|
|
require'lspconfig'.bashls.setup{}
|
|
require'lspconfig'.gopls.setup{}
|
|
require'lspconfig'.pyright.setup{}
|
|
require'lspconfig'.rls.setup{}
|
|
require'lspconfig'.rnix.setup{}
|
|
require'lspconfig'.solargraph.setup{}
|
|
require'lspconfig'.terraformls.setup{}
|
|
require'lspconfig'.tflint.setup{}
|
|
require'lspconfig'.yamlls.setup{}
|
|
|
|
-- treesitter
|
|
require('nvim-treesitter.configs').setup({
|
|
ensure_installed = "all",
|
|
|
|
highlight = {
|
|
enable = true,
|
|
custom_captures = {
|
|
-- ["<capture group>"] = "<highlight group>",
|
|
-- ["keyword"] = "TSString",
|
|
},
|
|
},
|
|
|
|
indent = {
|
|
enable = true
|
|
},
|
|
|
|
rainbow = {
|
|
enable = true,
|
|
extended_mode = true
|
|
},
|
|
})
|
|
|
|
--folding
|
|
vim.api.nvim_exec([[
|
|
set foldmethod=expr
|
|
set foldlevel=20
|
|
set nofoldenable
|
|
set foldexpr=nvim_treesitter#foldexpr()
|
|
]], true)
|
|
|
|
-- trouble
|
|
require("trouble").setup {
|
|
{
|
|
position = "bottom", -- position of the list can be: bottom, top, left, right
|
|
height = 10, -- height of the trouble list when position is top or bottom
|
|
width = 50, -- width of the list when position is left or right
|
|
icons = true, -- use devicons for filenames
|
|
mode = "lsp_workspace_diagnostics", -- "lsp_workspace_diagnostics", "lsp_document_diagnostics", "quickfix", "lsp_references", "loclist"
|
|
fold_open = "", -- icon used for open folds
|
|
fold_closed = "", -- icon used for closed folds
|
|
action_keys = { -- key mappings for actions in the trouble list
|
|
-- map to {} to remove a mapping, for example:
|
|
-- close = {},
|
|
close = "q", -- close the list
|
|
cancel = "<esc>", -- cancel the preview and get back to your last window / buffer / cursor
|
|
refresh = "r", -- manually refresh
|
|
jump = {"<cr>", "<tab>"}, -- jump to the diagnostic or open / close folds
|
|
open_split = { "<c-x>" }, -- open buffer in new split
|
|
open_vsplit = { "<c-v>" }, -- open buffer in new vsplit
|
|
open_tab = { "<c-t>" }, -- open buffer in new tab
|
|
jump_close = {"o"}, -- jump to the diagnostic and close the list
|
|
toggle_mode = "m", -- toggle between "workspace" and "document" diagnostics mode
|
|
toggle_preview = "P", -- toggle auto_preview
|
|
hover = "K", -- opens a small popup with the full multiline message
|
|
preview = "p", -- preview the diagnostic location
|
|
close_folds = {"zM", "zm"}, -- close all folds
|
|
open_folds = {"zR", "zr"}, -- open all folds
|
|
toggle_fold = {"zA", "za"}, -- toggle fold of current file
|
|
previous = "k", -- preview item
|
|
next = "j" -- next item
|
|
},
|
|
indent_lines = true, -- add an indent guide below the fold icons
|
|
auto_open = false, -- automatically open the list when you have diagnostics
|
|
auto_close = false, -- automatically close the list when you have no diagnostics
|
|
auto_preview = true, -- automatically preview the location of the diagnostic. <esc> to close preview and go back to last window
|
|
auto_fold = false, -- automatically fold a file trouble list at creation
|
|
signs = {
|
|
-- icons / text used for a diagnostic
|
|
error = "",
|
|
warning = "",
|
|
hint = "",
|
|
information = "",
|
|
other = ""
|
|
},
|
|
use_lsp_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client
|
|
}
|
|
}
|
|
|
|
-- twilight
|
|
require("twilight").setup {
|
|
dimming = {
|
|
alpha = 0.25, -- amount of dimming
|
|
-- we try to get the foreground from the highlight groups or fallback color
|
|
color = { "Normal", "#cccccc" },
|
|
},
|
|
context = 10, -- amount of lines we will try to show around the current line
|
|
expand = { -- for treesitter, we we always try to expand to the top-most ancestor with these types
|
|
"function",
|
|
"method",
|
|
"table",
|
|
"if_statement",
|
|
},
|
|
exclude = {}, -- exclude these filetypes
|
|
}
|
|
vim.cmd[[autocmd BufEnter * :TwilightEnable]]
|