local M = {} function M.colorizer_conf() require('colorizer').setup( {'*'}, { RGB = true, -- #RGB hex codes RRGGBB = true, -- #RRGGBB hex codes names = true, -- "Name" codes like Blue RRGGBBAA = true, -- #RRGGBBAA hex codes rgb_fn = true, -- CSS rgb() and rgba() functions hsl_fn = true, -- CSS hsl() and hsla() functions css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn mode = 'background' -- Set the display mode. }) end function M.blankline_conf() require('indent_blankline').setup { char = '│', -- space_char_blankline = '·', show_first_indent_level = true, filetype_exclude = { 'startify', 'dashboard', 'alpha', 'log', 'gitcommit', 'packer', 'vimwiki', 'markdown', 'org', 'json', 'txt', 'help', 'NvimTree', 'git', 'TelescopePrompt', 'undotree', 'dotooagenda', 'fugitive', '' -- for all buffers without a filetype }, buftype_exclude = {'terminal', 'nofile'}, show_trailing_blankline_indent = false, show_current_context = true, context_patterns = { 'class', 'function', 'method', 'block', 'list_literal', 'selector', '^if', '^table', 'if_statement', 'while', 'for' }, use_treesitter = true } -- Refresh often, since it is lazy-loaded -- vim.api.nvim_command('autocmd CursorMoved * IndentBlanklineRefresh') end function M.aniseed_conf() -- Compile fennel config to lua on startup require('aniseed.env').init() end function M.treesitter_conf() vim.api.nvim_command('set foldmethod=expr') vim.api.nvim_command('set foldexpr=nvim_treesitter#foldexpr()') -- Additional parser for rest.nvim (*.http files) local parser_configs = require('nvim-treesitter.parsers').get_parser_configs() parser_configs.http = { install_info = { url = 'https://github.com/NTBBloodbath/tree-sitter-http', files = { 'src/parser.c' }, branch = 'main' } } require('nvim-treesitter.configs').setup { ensure_installed = 'maintained', highlight = {enable = true}, textobjects = { select = { enable = true, keymaps = { ['af'] = '@function.outer', ['if'] = '@function.inner', ['ac'] = '@class.outer', ['ic'] = '@class.inner' } }, move = { enable = true, set_jumps = true, -- whether to set jumps in the jumplist goto_next_start = { [']['] = '@function.outer', [']m'] = '@class.outer' }, goto_next_end = { [']]'] = '@function.outer', [']M'] = '@class.outer' }, goto_previous_start = { ['[['] = '@function.outer', ['[m'] = '@class.outer' }, goto_previous_end = { ['[]'] = '@function.outer', ['[M'] = '@class.outer' } } }, matchup = {enable = true} } end function M.rainbow_conf() require('nvim-treesitter.configs').setup { rainbow = { enable = true, extended_mode = true, max_file_lines = 1000 } } end function M.matchup_conf() vim.g.matchup_matchparen_offscreen = {method = 'popup'} end function M.hop_conf() require('hop').setup {keys = 'etovxqpdygfblzhckisuran'} end function M.eft_conf() vim.g.eft_index_function = {all = function() return true end} end function M.comment_conf() require('nvim_comment').setup({comment_empty = false}) end function M.project_conf() require('project_nvim').setup { manual_mode = false, detection_methods = {'pattern', 'lsp'}, patterns = {'.git', '_darcs', '.hg', '.bzr', '.svn', 'Makefile', 'package.json', '*.pro', 'Dockerfile', '>Code'}, show_hidden = true, silent_chdir = true, datapath = vim.fn.stdpath('data') } end return M