-- ┌─────────────────────────────────────┐ -- │ ▜ ▐ ▐ ▗ │ -- │▛▀▖▐ ▌ ▌▞▀▌▗▖▖▞▀▘▞▀▖▜▀ ▜▀ ▄ ▛▀▖▞▀▌▞▀▘│ -- │▙▄▘▐ ▌ ▌▚▄▌▘▝ ▝▀▖▛▀ ▐ ▖▐ ▖▐ ▌ ▌▚▄▌▝▀▖│ -- │▌ ▘▝▀▘▗▄▘ ▀▀ ▝▀▘ ▀ ▀ ▀▘▘ ▘▗▄▘▀▀ │ -- └─────────────────────────────────────┘ local g = vim.g -- global for let options local opt = vim.opt -- convenient :set local cmd = vim.cmd -- vim commands -- vimwiki {{{ -- g.vimwiki_list = { { path = '/home/yigit/nextcloud/personal_wiki/text', path_html = '/home/yigit/nextcloud/personal_wiki/html', auto_generate_tags = 1, automatic_nested_syntaxes = 1, template_path = '/home/yigit/nextcloud/personal_wiki/templates', template_default = 'default_template', template_ext = '.html', auto_export = 1, auto_tags = 1 } } g.vimwiki_global_ext = 0 g.vimwiki_hl_headers = 1 -- }}} vimwiki -- -- lualine {{{ -- local function lualine_spell() if vim.wo.spell then return [[spell]] else return end end require'lualine'.setup { options = { lower = false, icons_enabled = true, theme = 'rose-pine', section_separators = {'', ''}, component_separators = {'', ''}, disabled_filetypes = {} }, sections = { lualine_a = {{'mode', lower = true}}, lualine_b = {'branch', 'diff', {lualine_spell}}, lualine_c = {'filename'}, lualine_x = {'encoding', 'fileformat', 'filetype'}, lualine_y = {'progress'}, lualine_z = { 'location', { 'diagnostics', sources = {'ale'}, sections = {'error', 'warn', 'info', 'hint'}, symbols = {error = 'e', warn = 'w', info = 'i', hint = 'h'} } } }, inactive_sections = { lualine_a = {}, lualine_b = {}, lualine_c = {'filename'}, lualine_x = {}, lualine_y = {}, lualine_z = {} }, tabline = {}, extensions = {} } -- }}} lualine -- -- cutlass suite {{{ -- -- cutlass/yoink/subverse suite g.yoinkIncludeDeleteOperations = 1 -- fix the Target STRING not available g.clipboard = { name = 'xsel_override', copy = { ['+'] = 'xsel --input --clipboard', ['*'] = 'xsel --input --primary', }, paste = { ['+'] = 'xsel --output --clipboard', ['*'] = 'xsel --output --primary', }, cache_enabled = 1, } -- }}} cutlass suite -- -- UltiSnips {{{ -- opt.runtimepath:append('/home/yigit/.vim/my-snippets/') g.UltiSnipsEditSplit = "vertical" -- ctrl + l expands the snippet, c + j/k navigates placeholders g.UltiSnipsExpandTrigger = "" g.UltiSnipsEnableSnipMate = "1" -- }}} UltiSnips -- -- beacon {{{ -- g.beacon_size = 100 g.beacon_shrink = 1 cmd('highlight Beacon guibg=red ctermbg=15') -- }}} beacon -- -- vimtex {{{ -- g.vimtex_view_method = 'zathura' g.vimtex_quickfix_mode = 0 -- }}} vimtex -- -- filetype.nvim {{{ -- require('filetype').setup({ overrides = { literal = { PKGBUILD = 'PKGBUILD', }, } }) -- }}} filetype.nvim -- -- tagbar {{{ -- g.tagbar_autofocus = 1 g.tagbar_compact = 1 g.tagbar_sort = 0 g.tagbar_width = 25 -- }}} tagbar -- -- ledger {{{ -- g.ledger_maxwidth = 80 g.ledger_fillstring = ' -' -- }}} ledger -- -- devicons {{{ -- require'nvim-web-devicons'.setup { override = { wiki = { icon = "", color = "#D7827E", name = "vimwiki" }, rem = { icon = "", color = "#B4637A", name = "remind" }, mail = { icon = "", color = "#907AA9", name = "mail" }, }; default = true } -- }}} devicons -- -- vim-slime {{{ -- g.slime_target = "tmux" g.slime_paste_file = "$HOME/.slime_paste" g.slime_default_config = {socket_name = vim.call("get", vim.call("split", vim.env.TMUX, ','), "0"), target_pane = "{last}"} -- }}} vim-slime -- -- gutentags {{{ -- g.gutentags_enabled = 1 g.gutentags_add_default_project_roots = 0 g.gutentags_project_root = {'Makefile', '.git'} g.gutentags_exclude_filetypes = {'gitcommit', 'gitconfig', 'gitrebase', 'gitsendemail', 'git'} g.gutentags_generate_on_new = 1 g.gutentags_generate_on_missing = 1 g.gutentags_generate_on_write = 1 g.gutentags_generate_on_empty_buffer = 0 g.gutentags_ctags_exclude = { '*.git', '*.svn', '*.hg', 'cache', 'build', 'dist', 'bin', 'node_modules', 'bower_components', '*-lock.json', '*.lock', '*.min.*', '*.bak', '*.zip', '*.pyc', '*.class', '*.sln', '*.csproj', '*.csproj.user', '*.tmp', '*.cache', '*.vscode', '*.pdb', '*.exe', '*.dll', '*.bin', '*.mp3', '*.ogg', '*.flac', '*.swp', '*.swo', '.DS_Store', '*.plist', '*.bmp', '*.gif', '*.ico', '*.jpg', '*.png', '*.svg', '*.rar', '*.zip', '*.tar', '*.tar.gz', '*.tar.xz', '*.tar.bz2', '*.pdf', '*.doc', '*.docx', '*.ppt', '*.pptx', '*.xls', } -- }}} gutentags -- -- telescope {{{ -- require('telescope').setup { extensions = { fzf = { fuzzy = true, -- false will only do exact matching override_generic_sorter = true, -- override the generic sorter override_file_sorter = true, -- override the file sorter case_mode = "smart_case", -- or "ignore_case" or "respect_case" -- the default case_mode is "smart_case" } } } require('telescope').load_extension('fzf') -- }}} telescope -- -- dashboard {{{ -- g.dashboard_default_executive = 'telescope' g.dashboard_preview_command = 'cat' g.dashboard_preview_pipeline = 'lolcat' g.dashboard_preview_file = '~/.config/nvim/neovim.cat' g.dashboard_preview_file_height = 14 g.dashboard_preview_file_width = 90 -- }}} dashboard -- -- treesitter {{{ -- require'nvim-treesitter.configs'.setup { ensure_installed = "maintained", ignore_install = { "javascript" }, highlight = { enable = true, additional_vim_regex_highlighting = false, }, } -- }}} treesitter -- -- nvim-cmp {{{ -- local cmp = require'cmp' cmp.setup({ snippet = { expand = function(args) vim.fn["UltiSnips#Anon"](args.body) end, }, mapping = { [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ select = true }), }, sources = { { name = 'nvim_lsp' }, { name = 'ultisnips' }, { name = 'buffer' }, { name = "latex_symbols" }, } }) -- }}} nvim-cmp -- -- nvim-lsp {{{ -- local nvim_lsp = require('lspconfig') local on_attach = function(client, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end 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') -- Mappings. local opts = { noremap=true, silent=true } -- See `:help vim.lsp.*` for documentation on any of the below functions buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) buf_set_keymap('n', 'vh', 'lua vim.lsp.buf.hover()', opts) buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) buf_set_keymap('n', 'vs', 'lua vim.lsp.buf.signature_help()', opts) buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) buf_set_keymap('n', 'wd', 'lua vim.lsp.buf.remove_workspace_folder()', opts) buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) buf_set_keymap('n', 'd', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) buf_set_keymap('n', 'f', 'lua vim.lsp.buf.formatting()', opts) end local servers = { 'rust_analyzer', 'jedi_language_server', 'texlab' } for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { on_attach = on_attach, flags = { debounce_text_changes = 150, }, capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } end -- }}} nvim-lsp -- g["float_preview#docked"] = 0 -- highlight on yank cmd('highlight HighlightedyankRegion cterm=reverse gui=reverse') g.highlightedyank_highlight_duration = 200