Created
January 14, 2025 01:31
-
-
Save knsh14/f87bdeae70ae4897622df2436c6b7690 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" | |
if not (vim.uv or vim.loop).fs_stat(lazypath) then | |
local lazyrepo = "https://github.com/folke/lazy.nvim.git" | |
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) | |
if vim.v.shell_error ~= 0 then | |
vim.api.nvim_echo({ | |
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" }, | |
{ out, "WarningMsg" }, | |
{ "\nPress any key to exit..." }, | |
}, true, {}) | |
vim.fn.getchar() | |
os.exit(1) | |
end | |
end | |
vim.opt.rtp:prepend(lazypath) | |
function contextmenu() | |
local funcs = { | |
{ | |
name = 'hover', | |
func = vim.lsp.buf.hover, | |
}, | |
{ | |
name = 'rename', | |
func = vim.lsp.buf.rename | |
}, | |
{ | |
name = 'references', | |
func = require("telescope.builtin").lsp_references | |
}, | |
{ | |
name = 'definition', | |
func = vim.lsp.buf.definition | |
}, | |
{ | |
name = 'implementation', | |
func = vim.lsp.buf.implementation | |
}, | |
{ | |
name = 'open_float', | |
func = vim.diagnostic.open_float | |
}, | |
{ | |
name = 'fold text', | |
func = vim.lsp.foldtext | |
}, | |
{ | |
name = 'code action', | |
func = vim.lsp.buf.code_action | |
} | |
} | |
-- let l:selections = map(copy(l:options), { key, val -> printf('%d) %s', key + 1, val ) }) | |
local names = {} | |
for i = 1, #funcs do | |
names[#names+1] = string.format("%d) %s", i, funcs[i]['name']) | |
end | |
vim.fn.inputsave() | |
local selection = vim.fn.inputlist(names) | |
vim.fn.inputrestore() | |
local f = funcs[selection].func | |
if f == nil then | |
return | |
end | |
vim.api.nvim_command([[silent! exe 'redraw']]) | |
f() | |
end | |
local knsh14 = {} | |
knsh14.contextmenu = contextmenu | |
vim.api.nvim_set_keymap('n', '<space><space>', [[<Cmd>lua require('knsh14').contextmenu()<CR>]], { noremap = true, silent = true }) | |
vim.api.nvim_set_keymap('t', '<ESC><ESC>', '<C-\\><C-n>',{noremap = true}) | |
vim.o.enc = 'utf8' | |
vim.o.fileencoding = 'utf-8' | |
vim.o.number = true | |
vim.o.autoindent = true | |
vim.o.tabstop = 4 | |
vim.o.shiftwidth = 4 | |
vim.o.expandtab = true | |
vim.o.cursorline = true | |
vim.o.swapfile = false | |
vim.o.backup = false | |
vim.opt.completeopt = {'menuone'} | |
vim.opt.clipboard:append({'unnamed'}) | |
vim.o.showtabline = 2 | |
vim.o.wrapscan = true | |
vim.o.ignorecase = true | |
vim.o.smartcase = true | |
vim.o.hlsearch = true | |
vim.o.incsearch = true | |
vim.opt.termguicolors = true | |
vim.o.list = true | |
vim.opt.listchars = { tab = '»-', trail = '-', extends = '»', precedes = '«', nbsp = '%' } | |
vim.opt.backspace = { 'indent', 'eol', 'start' } | |
vim.o.laststatus = 3 | |
vim.o.winbar = '%f' | |
vim.opt.syntax = 'on' | |
vim.opt.filetype = "plugin", "indent","on" | |
vim.api.nvim_set_keymap('n', '<S-Tab>', [[<<]], { noremap = true, silent = false}) | |
vim.api.nvim_set_keymap('i', '<S-Tab>', [[<C-d>]], { noremap = true, silent = false}) | |
vim.fn.sign_define("DiagnosticSignError", | |
{text = " ", texthl = "DiagnosticSignError"}) | |
vim.fn.sign_define("DiagnosticSignWarn", | |
{text = " ", texthl = "DiagnosticSignWarn"}) | |
vim.fn.sign_define("DiagnosticSignInfo", | |
{text = " ", texthl = "DiagnosticSignInfo"}) | |
vim.fn.sign_define("DiagnosticSignHint", | |
{text = "", texthl = "DiagnosticSignHint"}) | |
local execute = vim.api.nvim_command | |
local fn = vim.fn | |
-- plugin_setup() | |
-- | |
require("lazy").setup({ | |
'nvim-lua/popup.nvim', | |
'nvim-lua/plenary.nvim', | |
-- 'PyGamer0/github-dimmed.vim', | |
"folke/which-key.nvim", | |
'rcarriga/nvim-notify', | |
{ | |
'hoob3rt/lualine.nvim', | |
dependencies = {'kyazdani42/nvim-web-devicons', opt = true}, | |
config = function() | |
require'lualine'.setup { | |
options = { | |
icons_enabled = true, | |
theme = 'auto', | |
component_separators = {'', ''}, | |
section_separators = {'', ''}, | |
disabled_filetypes = {}, | |
always_show_tabline = true | |
}, | |
sections = { | |
lualine_a = {'mode'}, | |
lualine_b = {'branch'}, | |
lualine_c = {'filename'}, | |
lualine_x = {'encoding', 'fileformat', 'filetype'}, | |
lualine_y = {'progress'}, | |
lualine_z = {'location'} | |
}, | |
inactive_sections = { | |
lualine_a = {}, | |
lualine_b = {}, | |
lualine_c = {'filename'}, | |
lualine_x = {'location'}, | |
lualine_y = {}, | |
lualine_z = {} | |
}, | |
tabline = { | |
}, | |
extensions = {} | |
} | |
end | |
}, | |
{ | |
'akinsho/toggleterm.nvim', | |
version = "*", | |
config = function() | |
require("toggleterm").setup{ | |
size = function(term) | |
if term.direction == "vertical" then | |
return vim.o.columns * 0.3 | |
end | |
end, | |
direction = 'vertical', | |
close_on_exit = true, | |
} | |
end | |
}, | |
{ | |
"nvim-neo-tree/neo-tree.nvim", | |
branch = "v3.x", | |
dependencies = { | |
"nvim-lua/plenary.nvim", | |
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended | |
"MunifTanjim/nui.nvim", | |
-- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information | |
}, | |
config = function() | |
-- If you want icons for diagnostic errors, you'll need to define them somewhere: | |
require("neo-tree").setup({ | |
close_if_last_window = false, -- Close Neo-tree if it is the last window left in the tab | |
popup_border_style = "rounded", | |
enable_git_status = true, | |
enable_diagnostics = true, | |
open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, -- when opening files, do not use windows containing these filetypes or buftypes | |
sort_case_insensitive = false, -- used when sorting files and directories in the tree | |
sort_function = nil , -- use a custom function for sorting files and directories in the tree | |
default_component_configs = { | |
container = { | |
enable_character_fade = true | |
}, | |
indent = { | |
indent_size = 2, | |
padding = 1, -- extra padding on left hand side | |
-- indent guides | |
with_markers = true, | |
indent_marker = "│", | |
last_indent_marker = "└", | |
highlight = "NeoTreeIndentMarker", | |
-- expander config, needed for nesting files | |
with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders | |
expander_collapsed = "", | |
expander_expanded = "", | |
expander_highlight = "NeoTreeExpander", | |
}, | |
icon = { | |
folder_closed = "", | |
folder_open = "", | |
folder_empty = "", | |
provider = function(icon, node, state) -- default icon provider utilizes nvim-web-devicons if available | |
if node.type == "file" or node.type == "terminal" then | |
local success, web_devicons = pcall(require, "nvim-web-devicons") | |
local name = node.type == "terminal" and "terminal" or node.name | |
if success then | |
local devicon, hl = web_devicons.get_icon(name) | |
icon.text = devicon or icon.text | |
icon.highlight = hl or icon.highlight | |
end | |
end | |
end, | |
-- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there | |
-- then these will never be used. | |
default = "*", | |
highlight = "NeoTreeFileIcon" | |
}, | |
modified = { | |
symbol = "[+]", | |
highlight = "NeoTreeModified", | |
}, | |
name = { | |
trailing_slash = false, | |
use_git_status_colors = true, | |
highlight = "NeoTreeFileName", | |
}, | |
git_status = { | |
symbols = { | |
-- Change type | |
added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name | |
modified = "", -- or "", but this is redundant info if you use git_status_colors on the name | |
deleted = "✖",-- this can only be used in the git_status source | |
renamed = "",-- this can only be used in the git_status source | |
-- Status type | |
untracked = "", | |
ignored = "", | |
unstaged = "", | |
staged = "", | |
conflict = "", | |
} | |
}, | |
-- If you don't want to use these columns, you can set `enabled = false` for each of them individually | |
file_size = { | |
enabled = true, | |
required_width = 64, -- min width of window required to show this column | |
}, | |
type = { | |
enabled = true, | |
required_width = 122, -- min width of window required to show this column | |
}, | |
last_modified = { | |
enabled = true, | |
required_width = 88, -- min width of window required to show this column | |
}, | |
created = { | |
enabled = true, | |
required_width = 110, -- min width of window required to show this column | |
}, | |
symlink_target = { | |
enabled = false, | |
}, | |
}, | |
-- A list of functions, each representing a global custom command | |
-- that will be available in all sources (if not overridden in `opts[source_name].commands`) | |
-- see `:h neo-tree-custom-commands-global` | |
commands = {}, | |
window = { | |
position = "left", | |
width = 40, | |
mapping_options = { | |
noremap = true, | |
nowait = true, | |
}, | |
mappings = { | |
["<space>"] = { | |
"toggle_node", | |
nowait = false, -- disable `nowait` if you have existing combos starting with this char that you want to use | |
}, | |
["<2-LeftMouse>"] = "open", | |
["<cr>"] = "open", | |
["<esc>"] = "cancel", -- close preview or floating neo-tree window | |
["P"] = { "toggle_preview", config = { use_float = true, use_image_nvim = true } }, | |
-- Read `# Preview Mode` for more information | |
["l"] = "focus_preview", | |
["S"] = "open_split", | |
["s"] = "open_vsplit", | |
-- ["S"] = "split_with_window_picker", | |
-- ["s"] = "vsplit_with_window_picker", | |
["<Tab>"] = "open_tabnew", | |
-- ["<cr>"] = "open_drop", | |
-- ["t"] = "open_tab_drop", | |
["w"] = "open_with_window_picker", | |
--["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing | |
["C"] = "close_node", | |
-- ['C'] = 'close_all_subnodes', | |
["z"] = "close_all_nodes", | |
--["Z"] = "expand_all_nodes", | |
["a"] = { | |
"add", | |
-- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details | |
-- some commands may take optional config options, see `:h neo-tree-mappings` for details | |
config = { | |
show_path = "none" -- "none", "relative", "absolute" | |
} | |
}, | |
["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion. | |
["d"] = "delete", | |
["r"] = "rename", | |
["y"] = "copy_to_clipboard", | |
["x"] = "cut_to_clipboard", | |
["p"] = "paste_from_clipboard", | |
["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add": | |
-- ["c"] = { | |
-- "copy", | |
-- config = { | |
-- show_path = "none" -- "none", "relative", "absolute" | |
-- } | |
--} | |
["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add". | |
["q"] = "close_window", | |
["R"] = "refresh", | |
["?"] = "show_help", | |
["<"] = "prev_source", | |
[">"] = "next_source", | |
["i"] = "show_file_details", | |
} | |
}, | |
filesystem = { | |
filtered_items = { | |
visible = true, -- when true, they will just be displayed differently than normal items | |
hide_dotfiles = true, | |
hide_gitignored = true, | |
hide_hidden = true, -- only works on Windows for hidden files/directories | |
}, | |
follow_current_file = { | |
enabled = true, -- This will find and focus the file in the active buffer every time | |
-- -- the current file is changed while the tree is open. | |
leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal` | |
}, | |
group_empty_dirs = false, -- when true, empty folders will be grouped together | |
hijack_netrw_behavior = "open_default", -- netrw disabled, opening a directory opens neo-tree | |
-- in whatever position is specified in window.position | |
-- "open_current", -- netrw disabled, opening a directory opens within the | |
-- window like netrw would, regardless of window.position | |
-- "disabled", -- netrw left alone, neo-tree does not handle opening dirs | |
use_libuv_file_watcher = false, -- This will use the OS level file watchers to detect changes | |
-- instead of relying on nvim autocmd events. | |
window = { | |
mappings = { | |
["<bs>"] = "navigate_up", | |
["."] = "set_root", | |
["H"] = "toggle_hidden", | |
["/"] = "fuzzy_finder", | |
["D"] = "fuzzy_finder_directory", | |
["#"] = "fuzzy_sorter", -- fuzzy sorting using the fzy algorithm | |
-- ["D"] = "fuzzy_sorter_directory", | |
["f"] = "filter_on_submit", | |
["<c-x>"] = "clear_filter", | |
["[g"] = "prev_git_modified", | |
["]g"] = "next_git_modified", | |
["o"] = { "show_help", nowait=false, config = { title = "Order by", prefix_key = "o" }}, | |
["oc"] = { "order_by_created", nowait = false }, | |
["od"] = { "order_by_diagnostics", nowait = false }, | |
["og"] = { "order_by_git_status", nowait = false }, | |
["om"] = { "order_by_modified", nowait = false }, | |
["on"] = { "order_by_name", nowait = false }, | |
["os"] = { "order_by_size", nowait = false }, | |
["ot"] = { "order_by_type", nowait = false }, | |
-- ['<key>'] = function(state) ... end, | |
}, | |
fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode | |
["<down>"] = "move_cursor_down", | |
["<C-n>"] = "move_cursor_down", | |
["<up>"] = "move_cursor_up", | |
["<C-p>"] = "move_cursor_up", | |
-- ['<key>'] = function(state, scroll_padding) ... end, | |
}, | |
}, | |
commands = {} -- Add a custom command or override a global one using the same function name | |
}, | |
buffers = { | |
follow_current_file = { | |
enabled = true, -- This will find and focus the file in the active buffer every time | |
-- -- the current file is changed while the tree is open. | |
leave_dirs_open = true, -- `false` closes auto expanded dirs, such as with `:Neotree reveal` | |
}, | |
group_empty_dirs = true, -- when true, empty folders will be grouped together | |
show_unloaded = true, | |
window = { | |
mappings = { | |
["bd"] = "buffer_delete", | |
["<bs>"] = "navigate_up", | |
["."] = "set_root", | |
["o"] = { "show_help", nowait=false, config = { title = "Order by", prefix_key = "o" }}, | |
["oc"] = { "order_by_created", nowait = false }, | |
["od"] = { "order_by_diagnostics", nowait = false }, | |
["om"] = { "order_by_modified", nowait = false }, | |
["on"] = { "order_by_name", nowait = false }, | |
["os"] = { "order_by_size", nowait = false }, | |
["ot"] = { "order_by_type", nowait = false }, | |
} | |
}, | |
}, | |
git_status = { | |
window = { | |
position = "float", | |
mappings = { | |
["A"] = "git_add_all", | |
["gu"] = "git_unstage_file", | |
["ga"] = "git_add_file", | |
["gr"] = "git_revert_file", | |
["gc"] = "git_commit", | |
["gp"] = "git_push", | |
["gg"] = "git_commit_and_push", | |
["o"] = { "show_help", nowait=false, config = { title = "Order by", prefix_key = "o" }}, | |
["oc"] = { "order_by_created", nowait = false }, | |
["od"] = { "order_by_diagnostics", nowait = false }, | |
["om"] = { "order_by_modified", nowait = false }, | |
["on"] = { "order_by_name", nowait = false }, | |
["os"] = { "order_by_size", nowait = false }, | |
["ot"] = { "order_by_type", nowait = false }, | |
} | |
} | |
} | |
}) | |
vim.cmd([[nnoremap \ :Neotree reveal<cr>]]) | |
end | |
}, | |
{ | |
'knsh14/cprl.nvim', | |
dependencies = {'rcarriga/nvim-notify'}, | |
lazy = false, | |
cmd = {'CopyRemoteLink'}, | |
config = function() | |
require'cprl'.setup { | |
mode = { | |
master = function() | |
return "master" | |
end | |
}, | |
} | |
end | |
}, | |
{ | |
'nvim-treesitter/nvim-treesitter', | |
build = ":TSUpdate", | |
event = "VeryLazy", | |
lazy = vim.fn.argc(-1) == 0, | |
init = function(plugin) | |
require("lazy.core.loader").add_to_rtp(plugin) | |
require("nvim-treesitter.query_predicates") | |
end, | |
cmd = { 'TSInstallInfo', "TSUpdateSync", "TSUpdate", "TSInstall" }, | |
config = function() | |
require("nvim-treesitter.configs").setup({ | |
ensure_installed = {"lua", "vim", "go", "yaml", "markdown", "markdown_inline", "regex", "diff", "graphql"}, | |
highlight = { enable = true }, | |
}) | |
end | |
}, | |
{ | |
'neovim/nvim-lspconfig', | |
config = function() | |
local nvim_lsp = require('lspconfig') | |
local on_attach = function(client, bufnr) | |
-- Mappings. | |
-- See `:help vim.lsp.*` for documentation on any of the below functions | |
local bufopts = { noremap=true, silent=true, buffer=bufnr } | |
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) | |
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) | |
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) | |
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts) | |
-- Set autocommands conditional on server_capabilities | |
if client.server_capabilities.document_highlight then | |
vim.api.nvim_exec([[ | |
hi LspReferenceRead cterm=bold ctermbg=red guibg=LightYellow | |
hi LspReferenceText cterm=bold ctermbg=red guibg=LightYellow | |
hi LspReferenceWrite cterm=bold ctermbg=red guibg=LightYellow | |
augroup lsp_document_highlight | |
autocmd! * <buffer> | |
autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight() | |
autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references() | |
augroup END | |
]], false) | |
end | |
end | |
-- Use LspAttach autocommand to only map the following keys | |
-- after the language server attaches to the current buffer | |
vim.api.nvim_create_autocmd('LspAttach', { | |
group = vim.api.nvim_create_augroup('UserLspConfig', {}), | |
callback = function(ev) | |
-- Enable completion triggered by <c-x><c-o> | |
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' | |
-- Buffer local mappings. | |
-- See `:help vim.lsp.*` for documentation on any of the below functions | |
local opts = { buffer = ev.buf } | |
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) | |
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) | |
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) | |
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) | |
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts) | |
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts) | |
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts) | |
vim.keymap.set('n', '<space>wl', function() | |
print(vim.inspect(vim.lsp.buf.list_workspace_folders())) | |
end, opts) | |
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts) | |
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts) | |
vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts) | |
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) | |
vim.keymap.set('n', '<space>f', function() | |
vim.lsp.buf.format { async = true } | |
end, opts) | |
end, | |
}) | |
-- https://github.com/neovim/nvim-lspconfig/wiki/UI-Customization | |
vim.cmd [[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]] | |
vim.cmd [[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]] | |
local border = { | |
{"🭽", "FloatBorder"}, | |
{"▔", "FloatBorder"}, | |
{"🭾", "FloatBorder"}, | |
{"▕", "FloatBorder"}, | |
{"🭿", "FloatBorder"}, | |
{"▁", "FloatBorder"}, | |
{"🭼", "FloatBorder"}, | |
{"▏", "FloatBorder"}, | |
} | |
-- LSP settings (for overriding per client) | |
local handlers = { | |
["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {border = border}), | |
["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {border = border }), | |
} | |
-- To instead override globally | |
local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview | |
function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...) | |
opts = opts or {} | |
opts.border = opts.border or border | |
return orig_util_open_floating_preview(contents, syntax, opts, ...) | |
end | |
local function goto_definition(split_cmd) | |
local util = vim.lsp.util | |
local log = require("vim.lsp.log") | |
local api = vim.api | |
-- note, this handler style is for neovim 0.5.1/0.6, if on 0.5, call with function(_, method, result) | |
local handler = function(_, result, ctx) | |
if result == nil or vim.tbl_isempty(result) then | |
local _ = log.info() and log.info(ctx.method, "No location found") | |
return nil | |
end | |
if split_cmd then | |
vim.cmd(split_cmd) | |
end | |
if vim.tbl_islist(result) then | |
util.jump_to_location(result[1]) | |
if #result > 1 then | |
util.set_qflist(util.locations_to_items(result)) | |
api.nvim_command("copen") | |
api.nvim_command("wincmd p") | |
end | |
else | |
util.jump_to_location(result) | |
end | |
end | |
return handler | |
end | |
vim.lsp.handlers["textDocument/definition"] = goto_definition('tabnew') | |
function go_org_imports(wait_ms) | |
local params = vim.lsp.util.make_range_params() | |
params.context = {only = {"source.organizeImports"}} | |
local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, wait_ms) | |
for cid, res in pairs(result or {}) do | |
for _, r in pairs(res.result or {}) do | |
if r.edit then | |
local enc = (vim.lsp.get_client_by_id(cid) or {}).offset_encoding or "utf-16" | |
vim.lsp.util.apply_workspace_edit(r.edit, enc) | |
end | |
end | |
end | |
end | |
nvim_lsp.gopls.setup { | |
on_attach = on_attach; | |
handlers = handlers; | |
on_init = function(client) | |
client.config.settings.formattingProvider = "goimports" | |
return true | |
end | |
} | |
nvim_lsp.rust_analyzer.setup { | |
on_attach = on_attach; | |
settings = { | |
["rust-analyzer"] = { | |
assist = { | |
importGranularity = "module", | |
importPrefix = "by_self", | |
}, | |
cargo = { | |
loadOutDirsFromCheck = true | |
}, | |
procMacro = { | |
enable = true | |
}, | |
} | |
}; | |
handlers = handlers; | |
} | |
-- nvim_lsp.sumneko_lua.setup { | |
-- on_attach = on_attach; | |
-- } | |
nvim_lsp.pyright.setup { | |
on_attach = on_attach; | |
handlers = handlers; | |
} | |
nvim_lsp.graphql.setup { | |
on_attach = on_attach; | |
} | |
vim.cmd[[autocmd BufWritePre *.go lua go_org_imports()]] | |
end | |
}, | |
{ | |
'nvim-telescope/telescope.nvim', | |
dependencies = { {'nvim-lua/plenary.nvim'} }, | |
config = function() | |
-- local actions = require "telescope.actions" | |
require('telescope').setup{ | |
defaults = { | |
mappings = { | |
i = { | |
["<Tab>"] = "select_tab", | |
["<c-t>"] = require("trouble.sources.telescope").open, | |
}, | |
n = { | |
["<Tab>"] = "select_tab", | |
["<c-t>"] = require("trouble.sources.telescope").open, | |
} | |
} | |
}, | |
pickers = { | |
file_browser = { | |
hidden = true | |
} | |
}, | |
extensions = { | |
-- https://github.com/nvim-telescope/telescope-file-browser.nvim#setup-and-configuration | |
file_browser = { | |
hijack_netrw = true, | |
} | |
} | |
} | |
end | |
}, | |
{ | |
"folke/trouble.nvim", | |
dependencies = "kyazdani42/nvim-web-devicons", | |
config = function() | |
require("trouble").setup { | |
-- your configuration comes here | |
-- or leave it empty to use the default settings | |
-- refer to the configuration section below | |
} | |
end | |
}, | |
{ | |
"nvim-telescope/telescope-file-browser.nvim", | |
dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" } | |
}, | |
{ "EdenEast/nightfox.nvim" }, | |
{ | |
"lewis6991/gitsigns.nvim", | |
config = function() | |
require('gitsigns').setup() | |
end | |
}, | |
{ | |
"folke/tokyonight.nvim", | |
lazy = false, | |
priority = 1000, | |
opts = {}, | |
}, | |
{ "shaunsingh/nord.nvim" } | |
}) | |
require("telescope").load_extension "file_browser" | |
vim.api.nvim_set_hl(0, "FloatBorder", {bg="#3B4252", fg="#5E81AC"}) | |
vim.api.nvim_set_hl(0, "NormalFloat", {bg="#3B4252"}) | |
vim.api.nvim_set_hl(0, "TelescopeNormal", {bg="#3B4252"}) | |
vim.api.nvim_set_hl(0, "TelescopeBorder", {bg="#3B4252"}) | |
vim.cmd.colorscheme('tokyonight-night') | |
return knsh14 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment