summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorchristianchiarulli <[email protected]>2021-05-29 02:49:59 -0400
committerchristianchiarulli <[email protected]>2021-05-29 02:49:59 -0400
commit66501fefe7ad7742a36cae147b7efa72a36e289b (patch)
treeb9095d6d53e96db236b5c5cf90cdcec5aa12eb63 /lua
parent4ddcaf55a9047807c211d1fb31fc86dff7971162 (diff)
add some useful plugins to base config and a option to enable extras
Diffstat (limited to 'lua')
-rw-r--r--lua/keymappings.lua6
-rw-r--r--lua/lv-colorizer/init.lua13
-rw-r--r--lua/lv-gitblame/init.lua2
-rw-r--r--lua/lv-globals.lua5
-rw-r--r--lua/lv-hop/init.lua2
-rw-r--r--lua/lv-lsp-rooter/init.lua5
-rw-r--r--lua/lv-matchup/init.lua2
-rw-r--r--lua/lv-numb/init.lua4
-rw-r--r--lua/lv-quickscope/init.lua4
-rw-r--r--lua/lv-telescope/init.lua18
-rw-r--r--lua/lv-treesitter/init.lua10
-rw-r--r--lua/lv-which-key/init.lua30
-rw-r--r--lua/lv-zen/init.lua53
-rw-r--r--lua/plugins.lua208
14 files changed, 267 insertions, 95 deletions
diff --git a/lua/keymappings.lua b/lua/keymappings.lua
index 49f2f9fb..fff586d5 100644
--- a/lua/keymappings.lua
+++ b/lua/keymappings.lua
@@ -48,9 +48,13 @@ vim.api.nvim_set_keymap('x', 'J', ':move \'>+1<CR>gv-gv', {noremap = true, silen
vim.cmd('inoremap <expr> <c-j> (\"\\<C-n>\")')
vim.cmd('inoremap <expr> <c-k> (\"\\<C-p>\")')
--- fix to get netrw's gx command to work correctly
+-- fix to get netrw's gx command to work correctly
vim.api.nvim_set_keymap('n', 'gx', ":call netrw#BrowseX(expand((exists('g:netrw_gx')? g:netrw_gx : '<cfile>')),netrw#CheckIfRemote())<cr>", {noremap = true, silent = true})
+vim.cmd('vnoremap p "0p')
+vim.cmd('vnoremap P "0P')
+-- vim.api.nvim_set_keymap('v', 'p', '"0p', {silent = true})
+-- vim.api.nvim_set_keymap('v', 'P', '"0P', {silent = true})
-- vim.cmd('inoremap <expr> <TAB> (\"\\<C-n>\")')
-- vim.cmd('inoremap <expr> <S-TAB> (\"\\<C-p>\")')
diff --git a/lua/lv-colorizer/init.lua b/lua/lv-colorizer/init.lua
new file mode 100644
index 00000000..ed8fd408
--- /dev/null
+++ b/lua/lv-colorizer/init.lua
@@ -0,0 +1,13 @@
+require'colorizer'.setup(
+ {'*';},
+ {
+ RGB = true; -- #RGB hex codes
+ RRGGBB = true; -- #RRGGBB hex codes
+ 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
+ })
+ -- names = true; -- "Name" codes like Blue
+
diff --git a/lua/lv-gitblame/init.lua b/lua/lv-gitblame/init.lua
new file mode 100644
index 00000000..12645a7f
--- /dev/null
+++ b/lua/lv-gitblame/init.lua
@@ -0,0 +1,2 @@
+vim.cmd('highlight default link gitblame SpecialComment')
+vim.g.gitblame_enabled = 0
diff --git a/lua/lv-globals.lua b/lua/lv-globals.lua
index 43b5437e..feaf3e3c 100644
--- a/lua/lv-globals.lua
+++ b/lua/lv-globals.lua
@@ -11,8 +11,9 @@ O = {
number = true,
relative_number = true,
shell = 'bash',
- timeoutlen = 100,
- nvim_tree_disable_netrw = 0,
+ timeoutlen = 100,
+ nvim_tree_disable_netrw = 0,
+ extras = false,
-- @usage pass a table with your desired languages
treesitter = {
diff --git a/lua/lv-hop/init.lua b/lua/lv-hop/init.lua
new file mode 100644
index 00000000..acd4cd78
--- /dev/null
+++ b/lua/lv-hop/init.lua
@@ -0,0 +1,2 @@
+vim.api.nvim_set_keymap('n', 's', ":HopChar2<cr>", {silent = true})
+vim.api.nvim_set_keymap('n', 'S', ":HopWord<cr>", {silent = true})
diff --git a/lua/lv-lsp-rooter/init.lua b/lua/lv-lsp-rooter/init.lua
new file mode 100644
index 00000000..7f849072
--- /dev/null
+++ b/lua/lv-lsp-rooter/init.lua
@@ -0,0 +1,5 @@
+require("lsp-rooter").setup {
+ -- your configuration comes here
+ -- or leave it empty to use the default settings
+ -- refer to the configuration section below
+ }
diff --git a/lua/lv-matchup/init.lua b/lua/lv-matchup/init.lua
new file mode 100644
index 00000000..27b3f57f
--- /dev/null
+++ b/lua/lv-matchup/init.lua
@@ -0,0 +1,2 @@
+vim.g.matchup_matchparen_offscreen = {method = 'popup'}
+
diff --git a/lua/lv-numb/init.lua b/lua/lv-numb/init.lua
new file mode 100644
index 00000000..415327f1
--- /dev/null
+++ b/lua/lv-numb/init.lua
@@ -0,0 +1,4 @@
+require('numb').setup{
+ show_numbers = true, -- Enable 'number' for the window while peeking
+ show_cursorline = true -- Enable 'cursorline' for the window while peeking
+}
diff --git a/lua/lv-quickscope/init.lua b/lua/lv-quickscope/init.lua
new file mode 100644
index 00000000..817bc6dc
--- /dev/null
+++ b/lua/lv-quickscope/init.lua
@@ -0,0 +1,4 @@
+-- Trigger a highlight in the appropriate direction when pressing these keys:
+-- vim.cmd('let g:qs_highlight_on_keys = [\'f\', \'F\', \'t\', \'T\']')
+vim.g.qs_highlight_on_keys = {'f', 'F', 't', 'T'}
+vim.g.qs_max_chars=150
diff --git a/lua/lv-telescope/init.lua b/lua/lv-telescope/init.lua
index 09fecd17..a2e16942 100644
--- a/lua/lv-telescope/init.lua
+++ b/lua/lv-telescope/init.lua
@@ -1,4 +1,5 @@
local actions = require('telescope.actions')
+local trouble = require("trouble.providers.telescope")
-- Global remapping
------------------------------
-- '--color=never',
@@ -11,6 +12,7 @@ require('telescope').setup {
selection_caret = " ",
entry_prefix = " ",
initial_mode = "insert",
+ -- initial_mode = "insert",
selection_strategy = "reset",
sorting_strategy = "descending",
layout_strategy = "horizontal",
@@ -37,13 +39,15 @@ require('telescope').setup {
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker,
mappings = {
i = {
+ ["<C-c>"] = actions.close,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
+ ["<c-t>"] = trouble.open_with_trouble,
["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist,
-- To disable a keymap, put [map] = false
-- So, to not map "<C-n>", just put
-- ["<c-x>"] = false,
- ["<esc>"] = actions.close,
+ -- ["<esc>"] = actions.close,
-- Otherwise, just set the mapping to the function that you want it to be.
-- ["<C-i>"] = actions.select_horizontal,
@@ -57,15 +61,13 @@ require('telescope').setup {
n = {
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
- ["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist,
+ ["<c-t>"] = trouble.open_with_trouble,
+ ["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist
-- ["<C-i>"] = my_cool_custom_action,
}
}
},
- extensions = {
- fzy_native = {
- override_generic_sorter = false,
- override_file_sorter = true,
- }
- }
+ extensions = {fzy_native = {override_generic_sorter = false, override_file_sorter = true}}
}
+
+require'telescope'.load_extension('project')
diff --git a/lua/lv-treesitter/init.lua b/lua/lv-treesitter/init.lua
index 02a9a826..9811eb39 100644
--- a/lua/lv-treesitter/init.lua
+++ b/lua/lv-treesitter/init.lua
@@ -1,9 +1,19 @@
require'nvim-treesitter.configs'.setup {
ensure_installed = O.treesitter.ensure_installed, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
ignore_install = O.treesitter.ignore_install,
+ matchup = {
+ enable = true, -- mandatory, false will disable the whole extension
+ -- disable = { "c", "ruby" }, -- optional, list of language that will be disabled
+ },
highlight = {
enable = O.treesitter.highlight.enabled -- false will disable the whole extension
},
+ context_commentstring = {
+ enable = true,
+ config = {
+ css = '// %s'
+ }
+ },
-- indent = {enable = true, disable = {"python", "html", "javascript"}},
-- TODO seems to be broken
indent = {enable = {"javascriptreact"}},
diff --git a/lua/lv-which-key/init.lua b/lua/lv-which-key/init.lua
index 2840cc28..d51ba6a5 100644
--- a/lua/lv-which-key/init.lua
+++ b/lua/lv-which-key/init.lua
@@ -5,9 +5,9 @@ require("which-key").setup {
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
-- No actual key bindings are created
presets = {
- operators = true, -- adds help for operators like d, y, ...
- motions = true, -- adds help for motions
- text_objects = true, -- help for text objects triggered after entering an operator
+ operators = false, -- adds help for operators like d, y, ...
+ motions = false, -- adds help for motions
+ text_objects = false, -- help for text objects triggered after entering an operator
windows = true, -- default bindings on <c-w>
nav = true, -- misc bindings to work with windows
z = true, -- bindings for folds, spelling and others prefixed with z
@@ -66,6 +66,9 @@ vim.api.nvim_set_keymap("v", "<leader>/", ":CommentToggle<CR>", {noremap = true,
-- close buffer
vim.api.nvim_set_keymap("n", "<leader>c", ":BufferClose<CR>", {noremap = true, silent = true})
+-- open projects
+vim.api.nvim_set_keymap('n', '<leader>p', ":lua require'telescope'.extensions.project.project{}<CR>",
+ {noremap = true, silent = true})
-- TODO create entire treesitter section
local mappings = {
@@ -74,7 +77,17 @@ local mappings = {
["e"] = "Explorer",
["f"] = "Find File",
["h"] = "No Highlight",
+ ["p"] = "Projects",
d = {
+ name = "+Diagnostics",
+ t = {"<cmd>TroubleToggle<cr>", "trouble"},
+ w = {"<cmd>TroubleToggle lsp_workspace_diagnostics<cr>", "workspace"},
+ d = {"<cmd>TroubleToggle lsp_document_diagnostics<cr>", "document"},
+ q = {"<cmd>TroubleToggle quickfix<cr>", "quickfix"},
+ l = {"<cmd>TroubleToggle loclist<cr>", "loclist"},
+ r = {"<cmd>TroubleToggle lsp_references<cr>", "references"},
+ },
+ D = {
name = "+Debug",
b = {"<cmd>DebugToggleBreakpoint<cr>", "Toggle Breakpoint"},
c = {"<cmd>DebugContinue<cr>", "Continue"},
@@ -115,7 +128,6 @@ local mappings = {
s = {"<cmd>Telescope lsp_document_symbols<cr>", "Document Symbols"},
S = {"<cmd>Telescope lsp_workspace_symbols<cr>", "Workspace Symbols"}
},
-
s = {
name = "+Search",
b = {"<cmd>Telescope git_branches<cr>", "Checkout branch"},
@@ -129,7 +141,15 @@ local mappings = {
R = {"<cmd>Telescope registers<cr>", "Registers"},
t = {"<cmd>Telescope live_grep<cr>", "Text"}
},
- S = {name = "+Session", s = {"<cmd>SessionSave<cr>", "Save Session"}, l = {"<cmd>SessionLoad<cr>", "Load Session"}}
+ S = {name = "+Session", s = {"<cmd>SessionSave<cr>", "Save Session"}, l = {"<cmd>SessionLoad<cr>", "Load Session"}},
+
+ -- extras
+ z = {
+ name = "+Zen",
+ s = {"<cmd>TZBottom<cr>", "toggle status line"},
+ t = {"<cmd>TZTop<cr>", "toggle tab bar"},
+ z = {"<cmd>TZAtaraxis<cr>", "toggle zen"},
+ }
}
local wk = require("which-key")
diff --git a/lua/lv-zen/init.lua b/lua/lv-zen/init.lua
new file mode 100644
index 00000000..dae6a4e2
--- /dev/null
+++ b/lua/lv-zen/init.lua
@@ -0,0 +1,53 @@
+-- setup for TrueZen.nvim
+require("true-zen").setup({
+ true_false_commands = false,
+ cursor_by_mode = false,
+ before_minimalist_mode_shown = false,
+ before_minimalist_mode_hidden = false,
+ after_minimalist_mode_shown = false,
+ after_minimalist_mode_hidden = false,
+ bottom = {
+ hidden_laststatus = 0,
+ hidden_ruler = false,
+ hidden_showmode = false,
+ hidden_showcmd = false,
+ hidden_cmdheight = 1,
+
+ shown_laststatus = 2,
+ shown_ruler = true,
+ shown_showmode = false,
+ shown_showcmd = false,
+ shown_cmdheight = 1
+ },
+ top = {
+ hidden_showtabline = 0,
+
+ shown_showtabline = 2
+ },
+ left = {
+ hidden_number = false,
+ hidden_relativenumber = false,
+ hidden_signcolumn = "no",
+
+ shown_number = true,
+ shown_relativenumber = false,
+ shown_signcolumn = "no"
+ },
+ ataraxis = {
+ just_do_it_for_me = false,
+ left_padding = 10,
+ right_padding = 10,
+ top_padding = 1,
+ bottom_padding = 1
+ },
+ integrations = {
+ integration_galaxyline = true,
+ integration_vim_airline = false,
+ integration_vim_powerline = false,
+ integration_tmux = false,
+ integration_express_line = false,
+ integration_gitgutter = false,
+ integration_vim_signify = false,
+ integration_limelight = false
+ }
+})
diff --git a/lua/plugins.lua b/lua/plugins.lua
index 76bde767..95ad6f95 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -22,88 +22,138 @@ local function require_plugin(plugin)
end
end
-- print(ok, err, code)
- if ok then
- vim.cmd("packadd " .. plugin)
- end
+ if ok then vim.cmd("packadd " .. plugin) end
return ok, err, code
end
vim.cmd "autocmd BufWritePost plugins.lua PackerCompile" -- Auto compile when there are changes in plugins.lua
-return require("packer").startup(
- function(use)
- -- Packer can manage itself as an optional plugin
- use "wbthomason/packer.nvim"
-
- -- TODO refactor all of this (for now it works, but yes I know it could be wrapped in a simpler function)
- use {"neovim/nvim-lspconfig", opt = true}
- use {"glepnir/lspsaga.nvim", opt = true}
- use {"kabouzeid/nvim-lspinstall", opt = true}
-
- -- Telescope
- use {"nvim-lua/popup.nvim", opt = true}
- use {"nvim-lua/plenary.nvim", opt = true}
- use {"nvim-telescope/telescope.nvim", opt = true}
- use {"nvim-telescope/telescope-fzy-native.nvim", opt = true}
-
- -- Debugging
- use {"mfussenegger/nvim-dap", opt = true}
-
- -- Autocomplete
- use {"hrsh7th/nvim-compe", opt = true}
- use {"hrsh7th/vim-vsnip", opt = true}
- use {"rafamadriz/friendly-snippets", opt = true}
-
- -- Treesitter
- use {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"}
- use {"windwp/nvim-ts-autotag", opt = true}
-
- -- Explorer
- use {"kyazdani42/nvim-tree.lua", opt = true}
- -- TODO remove when open on dir is supported by nvimtree
- use "kevinhwang91/rnvimr"
-
- -- use {'lukas-reineke/indent-blankline.nvim', opt=true, branch = 'lua'}
- use {"lewis6991/gitsigns.nvim", opt = true}
- -- use {"liuchengxu/vim-which-key", opt = true}
- use {"folke/which-key.nvim", opt = true}
- use {"ChristianChiarulli/dashboard-nvim", opt = true}
- use {"windwp/nvim-autopairs", opt = true}
- use {"terrortylor/nvim-comment", opt = true}
- use {"kevinhwang91/nvim-bqf", opt = true}
-
- -- Color
- use {"christianchiarulli/nvcode-color-schemes.vim", opt = true}
-
- -- Icons
- use {"kyazdani42/nvim-web-devicons", opt = true}
-
- -- Status Line and Bufferline
- use {"glepnir/galaxyline.nvim", opt = true}
- use {"romgrk/barbar.nvim", opt = true}
-
- require_plugin("nvim-lspconfig")
- require_plugin("lspsaga.nvim")
- require_plugin("nvim-lspinstall")
- require_plugin("friendly-snippets")
- require_plugin("popup.nvim")
- require_plugin("plenary.nvim")
- require_plugin("telescope.nvim")
- require_plugin("nvim-dap")
- require_plugin("nvim-compe")
- require_plugin("vim-vsnip")
- require_plugin("nvim-treesitter")
- require_plugin("nvim-ts-autotag")
- require_plugin("nvim-tree.lua")
- require_plugin("gitsigns.nvim")
- require_plugin("which-key.nvim")
- require_plugin("dashboard-nvim")
- require_plugin("nvim-autopairs")
- require_plugin("nvim-comment")
- require_plugin("nvim-bqf")
- require_plugin("nvcode-color-schemes.vim")
- require_plugin("nvim-web-devicons")
- require_plugin("galaxyline.nvim")
- require_plugin("barbar.nvim")
+return require("packer").startup(function(use)
+ -- Packer can manage itself as an optional plugin
+ use "wbthomason/packer.nvim"
+
+ -- TODO refactor all of this (for now it works, but yes I know it could be wrapped in a simpler function)
+ use {"neovim/nvim-lspconfig", opt = true}
+ use {"glepnir/lspsaga.nvim", opt = true}
+ use {"kabouzeid/nvim-lspinstall", opt = true}
+ use {"folke/trouble.nvim", opt = true}
+
+ -- Telescope
+ use {"nvim-lua/popup.nvim", opt = true}
+ use {"nvim-lua/plenary.nvim", opt = true}
+ use {"nvim-telescope/telescope.nvim", opt = true}
+ use {"nvim-telescope/telescope-fzy-native.nvim", opt = true}
+ use {"nvim-telescope/telescope-project.nvim", opt = true}
+
+ -- Debugging
+ use {"mfussenegger/nvim-dap", opt = true}
+
+ -- Autocomplete
+ use {"hrsh7th/nvim-compe", opt = true}
+ use {"hrsh7th/vim-vsnip", opt = true}
+ use {"rafamadriz/friendly-snippets", opt = true}
+
+ -- Treesitter
+ use {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"}
+ use {"windwp/nvim-ts-autotag", opt = true}
+ use {'andymass/vim-matchup', opt = true}
+
+ -- Explorer
+ use {"kyazdani42/nvim-tree.lua", opt = true}
+ use {"ahmedkhalf/lsp-rooter.nvim", opt = true} -- with this nvim-tree will follow you
+ -- TODO remove when open on dir is supported by nvimtree
+ use "kevinhwang91/rnvimr"
+
+ -- use {'lukas-reineke/indent-blankline.nvim', opt=true, branch = 'lua'}
+ use {"lewis6991/gitsigns.nvim", opt = true}
+ use {'f-person/git-blame.nvim', opt = true}
+ use {"folke/which-key.nvim", opt = true}
+ use {"ChristianChiarulli/dashboard-nvim", opt = true}
+ use {"windwp/nvim-autopairs", opt = true}
+ use {"kevinhwang91/nvim-bqf", opt = true}
+
+ -- Comments
+ use {"terrortylor/nvim-comment", opt = true}
+ use {'JoosepAlviste/nvim-ts-context-commentstring', opt = true}
+
+ -- Color
+ use {"christianchiarulli/nvcode-color-schemes.vim", opt = true}
+
+ -- Icons
+ use {"kyazdani42/nvim-web-devicons", opt = true}
+
+ -- Status Line and Bufferline
+ use {"glepnir/galaxyline.nvim", opt = true}
+ use {"romgrk/barbar.nvim", opt = true}
+
+ -- Zen Mode
+ use {"Pocco81/TrueZen.nvim", opt = true}
+
+ require_plugin("nvim-lspconfig")
+ require_plugin("lspsaga.nvim")
+ require_plugin("nvim-lspinstall")
+ require_plugin('trouble.nvim')
+ require_plugin("friendly-snippets")
+ require_plugin("popup.nvim")
+ require_plugin("plenary.nvim")
+ require_plugin("telescope.nvim")
+ require_plugin('telescope-project.nvim')
+ require_plugin("nvim-dap")
+ require_plugin("nvim-compe")
+ require_plugin("vim-vsnip")
+ require_plugin("nvim-treesitter")
+ require_plugin("nvim-ts-autotag")
+ require_plugin('vim-matchup')
+ require_plugin("nvim-tree.lua")
+ require_plugin("gitsigns.nvim")
+ require_plugin("git-blame.nvim")
+ require_plugin("which-key.nvim")
+ require_plugin("dashboard-nvim")
+ require_plugin("nvim-autopairs")
+ require_plugin("nvim-comment")
+ require_plugin("nvim-bqf")
+ require_plugin("nvcode-color-schemes.vim")
+ require_plugin("nvim-web-devicons")
+ require_plugin("galaxyline.nvim")
+ require_plugin("barbar.nvim")
+ require_plugin('lsp-rooter.nvim')
+ require_plugin("TrueZen.nvim")
+ require_plugin("nvim-ts-context-commentstring")
+
+ -- Extras
+ if O.extras then
+ use {'metakirby5/codi.vim', opt = true}
+ require_plugin('codi.vim')
+ use {'iamcco/markdown-preview.nvim', run = 'cd app && npm install', opt = true}
+ require_plugin('markdown-preview.nvim')
+ use {'numToStr/FTerm.nvim', opt = true}
+ require_plugin('numToStr/FTerm.nvim')
+ use {'monaqa/dial.nvim', opt = true}
+ require_plugin('dial.nvim')
+ use {'nacro90/numb.nvim', opt = true}
+ require_plugin('numb.nvim')
+ use {'turbio/bracey.vim', opt = true}
+ require_plugin('bracey.vim')
+ use {'phaazon/hop.nvim', opt = true}
+ require_plugin('hop.nvim')
+ use {'norcalli/nvim-colorizer.lua', opt = true}
+ require_plugin('nvim-colorizer.lua')
+ use {'windwp/nvim-spectre', opt = true}
+ require_plugin('windwp/nvim-spectre')
+ -- folke/todo-comments.nvim
+ -- gennaro-tedesco/nvim-jqx
+ -- TimUntersberger/neogit
+ -- folke/lsp-colors.nvim
+ -- simrat39/symbols-outline.nvim
+
+ -- Git
+ -- use {'tpope/vim-fugitive', opt = true}
+ -- use {'tpope/vim-rhubarb', opt = true}
+ -- pwntester/octo.nvim
+
+ -- Easily Create Gists
+ -- use {'mattn/vim-gist', opt = true}
+ -- use {'mattn/webapi-vim', opt = true}
end
-)
+
+end)