163 lines
5.3 KiB
Nix
163 lines
5.3 KiB
Nix
#
|
|
# Neovim
|
|
#
|
|
|
|
{ pkgs, ... }:
|
|
|
|
{
|
|
|
|
home = {
|
|
packages = [ pkgs.gnvim ];
|
|
};
|
|
|
|
programs = {
|
|
neovim = {
|
|
enable = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
vimdiffAlias = true;
|
|
withNodeJs = true;
|
|
|
|
# plugins = with pkgs.vimPlugins; [
|
|
#
|
|
# # Syntax
|
|
# #vim-nix
|
|
# #vim-markdown
|
|
#
|
|
# # Quality of life
|
|
# vim-lastplace # Opens document where you left it
|
|
# auto-pairs # Print double quotes/brackets/etc.
|
|
# vim-gitgutter # See uncommitted changes of file :GitGutterEnable
|
|
#
|
|
# # File Tree
|
|
# nerdtree # File Manager - set in extraConfig to F6
|
|
#
|
|
# # Customization
|
|
# wombat256-vim # Color scheme for lightline
|
|
# srcery-vim # Color scheme for text
|
|
#
|
|
# lightline-vim # Info bar at bottom
|
|
# indent-blankline-nvim # Indentation lines
|
|
#
|
|
# # Syntax
|
|
# nvim-treesitter.withAllGrammars
|
|
# # finder
|
|
# telescope-nvim
|
|
# # completion
|
|
# nvim-cmp
|
|
# # status line
|
|
# lualine-nvim
|
|
# # indent
|
|
# indent-blankline-nvim
|
|
# ];
|
|
|
|
extraPackages = with pkgs; [
|
|
ripgrep
|
|
fd
|
|
nodejs
|
|
nodePackages.npm
|
|
];
|
|
|
|
# extraConfig = ''
|
|
# set expandtab
|
|
# set shiftwidth=4
|
|
# set tabstop=4
|
|
# '';
|
|
|
|
# extraLuaConfig = ''
|
|
# vim.g.mapleader = ' '
|
|
# vim.g.maplocalleader = ' '
|
|
#
|
|
# -- Set highlight on search
|
|
# vim.o.hlsearch = false
|
|
#
|
|
# -- Make line numbers default
|
|
# vim.wo.number = true
|
|
#
|
|
# -- Enable mouse mode
|
|
# vim.o.mouse = 'a'
|
|
#
|
|
# -- Sync clipboard between OS and Neovim.
|
|
# -- Remove this option if you want your OS clipboard to remain independent.
|
|
# -- See `:help 'clipboard'`
|
|
# vim.o.clipboard = 'unnamedplus'
|
|
#
|
|
# -- Enable break indent
|
|
# vim.o.breakindent = true
|
|
#
|
|
# -- Save undo history
|
|
# vim.o.undofile = true
|
|
#
|
|
# -- Case insensitive searching UNLESS /C or capital in search
|
|
# vim.o.ignorecase = true
|
|
# vim.o.smartcase = true
|
|
#
|
|
# -- Keep signcolumn on by default
|
|
# vim.wo.signcolumn = 'yes'
|
|
#
|
|
# -- Decrease update time
|
|
# vim.o.updatetime = 250
|
|
# vim.o.timeout = true
|
|
# vim.o.timeoutlen = 300
|
|
#
|
|
# -- Set completeopt to have a better completion experience
|
|
# vim.o.completeopt = 'menuone,noselect'
|
|
#
|
|
# -- NOTE: You should make sure your terminal supports this
|
|
# vim.o.termguicolors = true
|
|
#
|
|
# -- [[ Highlight on yank ]]
|
|
# -- See `:help vim.highlight.on_yank()`
|
|
# local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true })
|
|
# vim.api.nvim_create_autocmd('TextYankPost', {
|
|
# callback = function()
|
|
# vim.highlight.on_yank()
|
|
# end,
|
|
# group = highlight_group,
|
|
# pattern = '*',
|
|
# })
|
|
#
|
|
# -- [[ Configure Telescope ]]
|
|
# -- See `:help telescope` and `:help telescope.setup()`
|
|
# require('telescope').setup {
|
|
# defaults = {
|
|
# mappings = {
|
|
# i = {
|
|
# ['<C-u>'] = false,
|
|
# ['<C-d>'] = false,
|
|
# },
|
|
# },
|
|
# },
|
|
# }
|
|
#
|
|
# -- Enable telescope fzf native, if installed
|
|
# pcall(require('telescope').load_extension, 'fzf')
|
|
#
|
|
# -- See `:help telescope.builtin`
|
|
# vim.keymap.set('n', '<leader>?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' })
|
|
# vim.keymap.set('n', '<leader><space>', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' })
|
|
# vim.keymap.set('n', '<leader>/', function()
|
|
# -- You can pass additional configuration to telescope to change theme, layout, etc.
|
|
# require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
|
# winblend = 10,
|
|
# previewer = false,
|
|
# })
|
|
# end, { desc = '[/] Fuzzily search in current buffer' })
|
|
#
|
|
# vim.keymap.set('n', '<leader>gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' })
|
|
# vim.keymap.set('n', '<leader>sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' })
|
|
# vim.keymap.set('n', '<leader>sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' })
|
|
# vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' })
|
|
# vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
|
|
# vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
|
|
# require("indent_blankline").setup {
|
|
# -- for example, context is off by default, use this to turn it on
|
|
# show_current_context = true,
|
|
# show_current_context_start = true,
|
|
# }
|
|
# '';
|
|
};
|
|
};
|
|
}
|
|
|