Starts moving nvim config to lua

master
Jonathan Hodgson 5 months ago
parent b039bf70fd
commit 954642753f
  1. 66
      .gitmodules
  2. 5
      nvim/.config/nvim/after.old/plugin/lsp.vim
  3. 0
      nvim/.config/nvim/after.old/plugin/test.md
  4. 83
      nvim/.config/nvim/init.lua
  5. 46
      nvim/.config/nvim/init.vim
  6. 19
      nvim/.config/nvim/lazy-lock.json
  7. 107
      nvim/.config/nvim/lua/plugins/cmp.lua
  8. 25
      nvim/.config/nvim/lua/plugins/fzf.lua
  9. 21
      nvim/.config/nvim/lua/plugins/gruvbox.lua
  10. 3
      nvim/.config/nvim/lua/plugins/init.lua
  11. 4
      nvim/.config/nvim/lua/plugins/surround.lua
  12. 14
      nvim/.config/nvim/lua/plugins/treesitter.lua
  13. 11
      nvim/.config/nvim/lua/plugins/ultimate-autopair.lua
  14. 1
      nvim/.config/nvim/pack/bundle/opt/AnsiEsc.vim
  15. 4
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/.flake8
  16. 21
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/LICENSE
  17. 19
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/README.md
  18. 35
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/autoload/health/deoplete_abook.vim
  19. 61
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/doc/deoplete_abook.txt
  20. BIN
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/rplugin/python3/deoplete/sources/__pycache__/abook.cpython-310.pyc
  21. BIN
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/rplugin/python3/deoplete/sources/__pycache__/abook.cpython-38.pyc
  22. BIN
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/rplugin/python3/deoplete/sources/__pycache__/abook.cpython-39.pyc
  23. 64
      nvim/.config/nvim/pack/bundle/opt/deoplete-abook/rplugin/python3/deoplete/sources/abook.py
  24. 1
      nvim/.config/nvim/pack/bundle/opt/deoplete-lsp
  25. 1
      nvim/.config/nvim/pack/bundle/opt/deoplete-notmuch
  26. 1
      nvim/.config/nvim/pack/bundle/opt/deoplete.nvim
  27. 1
      nvim/.config/nvim/pack/bundle/opt/firenvim
  28. 1
      nvim/.config/nvim/pack/bundle/opt/fzf.vim
  29. 1
      nvim/.config/nvim/pack/bundle/opt/gruvbox
  30. 1
      nvim/.config/nvim/pack/bundle/opt/gruvbox-baby
  31. 1
      nvim/.config/nvim/pack/bundle/opt/lexima.vim
  32. 1
      nvim/.config/nvim/pack/bundle/opt/nvim-lspconfig
  33. 1
      nvim/.config/nvim/pack/bundle/opt/nvim-treesitter
  34. 1
      nvim/.config/nvim/pack/bundle/opt/ultisnips
  35. 1
      nvim/.config/nvim/pack/bundle/opt/vim-fugitive
  36. 1
      nvim/.config/nvim/pack/bundle/opt/vim-json
  37. 1
      nvim/.config/nvim/pack/bundle/opt/vim-less
  38. 1
      nvim/.config/nvim/pack/bundle/opt/vim-openscad
  39. 1
      nvim/.config/nvim/pack/bundle/opt/vim-projectionist
  40. 1
      nvim/.config/nvim/pack/bundle/opt/vim-repeat
  41. 1
      nvim/.config/nvim/pack/bundle/opt/vim-snippets
  42. 1
      nvim/.config/nvim/pack/bundle/opt/vim-surround
  43. 1
      nvim/.config/nvim/pack/bundle/opt/vim-tridactyl
  44. 1
      nvim/.config/nvim/pack/bundle/opt/vim-vinegar
  45. 22
      nvim/.config/nvim/plugin/fzf.vim
  46. 125
      nvim/.config/nvim/plugin/mappings.lua
  47. 95
      nvim/.config/nvim/plugin/mappings.vim
  48. 77
      nvim/.config/nvim/plugin/settings.lua
  49. 73
      nvim/.config/nvim/plugin/settings.vim
  50. 11
      nvim/.config/nvim/plugin/treesitter.vim
  51. 2
      nvim/.config/nvim/spell/en.utf-8.add
  52. BIN
      nvim/.config/nvim/spell/en.utf-8.add.spl
  53. 54
      nvim/.config/nvim/syntax/csv.vim

66
.gitmodules vendored

@ -16,69 +16,3 @@
[submodule "shells/zsh/plugins/git-fuzzy"]
path = shells/zsh/plugins/git-fuzzy
url = https://github.com/bigH/git-fuzzy
[submodule "nvim/.config/nvim/pack/opt/gruvbox"]
path = nvim/.config/nvim/pack/bundle/opt/gruvbox
url = https://github.com/morhetz/gruvbox.git
[submodule "nvim/.config/nvim/pack/bundle/opt/fzf.vim"]
path = nvim/.config/nvim/pack/bundle/opt/fzf.vim
url = https://github.com/junegunn/fzf.vim
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-tridactyl"]
path = nvim/.config/nvim/pack/bundle/opt/vim-tridactyl
url = https://github.com/tridactyl/vim-tridactyl
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-less"]
path = nvim/.config/nvim/pack/bundle/opt/vim-less
url = https://github.com/groenewege/vim-less
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-json"]
path = nvim/.config/nvim/pack/bundle/opt/vim-json
url = https://github.com/elzr/vim-json
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-vinegar"]
path = nvim/.config/nvim/pack/bundle/opt/vim-vinegar
url = https://github.com/tpope/vim-vinegar
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-surround"]
path = nvim/.config/nvim/pack/bundle/opt/vim-surround
url = https://github.com/tpope/vim-surround
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-repeat"]
path = nvim/.config/nvim/pack/bundle/opt/vim-repeat
url = https://github.com/tpope/vim-repeat
[submodule "nvim/.config/nvim/pack/bundle/opt/nvim-lspconfig"]
path = nvim/.config/nvim/pack/bundle/opt/nvim-lspconfig
url = https://github.com/neovim/nvim-lspconfig/
[submodule "nvim/.config/nvim/pack/bundle/opt/deoplete.nvim"]
path = nvim/.config/nvim/pack/bundle/opt/deoplete.nvim
url = https://github.com/Shougo/deoplete.nvim
[submodule "nvim/.config/nvim/pack/bundle/opt/deoplete-notmuch"]
path = nvim/.config/nvim/pack/bundle/opt/deoplete-notmuch
url = https://github.com/paretje/deoplete-notmuch
[submodule "nvim/.config/nvim/pack/bundle/opt/deoplete-lsp"]
path = nvim/.config/nvim/pack/bundle/opt/deoplete-lsp
url = https://github.com/Shougo/deoplete-lsp
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-fugitive"]
path = nvim/.config/nvim/pack/bundle/opt/vim-fugitive
url = https://github.com/tpope/vim-fugitive
[submodule "nvim/.config/nvim/pack/bundle/opt/AnsiEsc.vim"]
path = nvim/.config/nvim/pack/bundle/opt/AnsiEsc.vim
url = https://github.com/vim-scripts/AnsiEsc.vim
[submodule "nvim/.config/nvim/pack/bundle/opt/firenvim"]
path = nvim/.config/nvim/pack/bundle/opt/firenvim
url = https://github.com/glacambre/firenvim
[submodule "nvim/.config/nvim/pack/bundle/opt/ultisnips"]
path = nvim/.config/nvim/pack/bundle/opt/ultisnips
url = https://github.com/SirVer/ultisnips
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-snippets"]
path = nvim/.config/nvim/pack/bundle/opt/vim-snippets
url = https://github.com/honza/vim-snippets
[submodule "nvim/.config/nvim/pack/bundle/opt/lexima.vim"]
path = nvim/.config/nvim/pack/bundle/opt/lexima.vim
url = https://github.com/cohama/lexima.vim
[submodule "nvim/.config/nvim/pack/bundle/opt/nvim-treesitter"]
path = nvim/.config/nvim/pack/bundle/opt/nvim-treesitter
url = https://github.com/nvim-treesitter/nvim-treesitter
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-projectionist"]
path = nvim/.config/nvim/pack/bundle/opt/vim-projectionist
url = https://github.com/tpope/vim-projectionist
[submodule "nvim/.config/nvim/pack/bundle/opt/gruvbox-baby"]
path = nvim/.config/nvim/pack/bundle/opt/gruvbox-baby
url = https://github.com/luisiacc/gruvbox-baby
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-openscad"]
path = nvim/.config/nvim/pack/bundle/opt/vim-openscad
url = https://github.com/sirtaj/vim-openscad

@ -9,11 +9,12 @@ lua <<EOF
-- Bash Language Server
require'lspconfig'.bashls.setup{}
-- Clang Language Server
require'lspconfig'.ccls.setup{}
--require'lspconfig'.ccls.setup{}
require'lspconfig'.clangd.setup{}
-- Go Language Server
require'lspconfig'.gopls.setup{}
-- Python Language Server
--require'lspconfig'.pyls.setup{}
require'lspconfig'.pylsp.setup{}
-- Vim Language Server
require'lspconfig'.vimls.setup{}
-- VUE Language Server

@ -0,0 +1,83 @@
-- Set leader and localleader here as a numeber of plugins will use them
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
vim.cmd([[
syntax on
filetype indent plugin on
]])
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup("plugins")
-- require("lazy").setup({ {
-- "ellisonleao/gruvbox.nvim",
-- lazy = false,
-- priority=1000
-- },{
-- "nvim-treesitter/nvim-treesitter",
-- build = ":TSUpdate"
-- }
-- })
--
vim.cmd("colorscheme gruvbox")
vim.cmd([[
"if has('packages')
" packadd! AnsiEsc.vim
" packadd! fzf.vim
" packadd! gruvbox
" packadd! gruvbox-baby
" packadd! lexima.vim
" packadd! loupe
" packadd! ultisnips
" packadd! vim-fugitive
" packadd! vim-json
" packadd! vim-less
" packadd! vim-projectionist
" packadd! vim-repeat
" packadd! vim-snippets
" packadd! vim-surround
" packadd! vim-tridactyl
" packadd! vim-vinegar
" packadd! vim-openscad
" if has('nvim')
" packadd! deoplete.nvim
" packadd! deoplete-abook
" packadd! deoplete-lsp
" packadd! deoplete-notmuch
" packadd! firenvim
" packadd! nvim-treesitter
" " packadd! nvim-biscuits
" lua <<EOF
" if ( vim.lsp ~= nil ) then
" vim.cmd "packadd! nvim-lspconfig"
" end
"EOF
" endif
"endif
" Enables filetype detection as well as filetype specific indent rules and plugins
"filetype indent plugin on
" Enables filetype specific syntaxs
"syntax on
""let g:UltiSnipsExpandTrigger="<tab>"
""let g:UltiSnipsJumpForwardTrigger="<tab>"
""let g:UltiSnipsJumpBackwardTrigger="<S-tab>"
]])

@ -1,46 +0,0 @@
let mapleader = "\<Space>"
let maplocalleader = "\\"
if has('packages')
packadd! AnsiEsc.vim
packadd! fzf.vim
packadd! gruvbox
packadd! lexima.vim
packadd! ultisnips
packadd! vim-fugitive
packadd! vim-json
packadd! vim-less
packadd! vim-projectionist
packadd! vim-repeat
packadd! vim-snippets
packadd! vim-surround
packadd! vim-tridactyl
packadd! vim-vinegar
if has('nvim')
packadd! deoplete.nvim
packadd! deoplete-abook
packadd! deoplete-lsp
packadd! deoplete-notmuch
packadd! firenvim
packadd! nvim-treesitter
packadd! nvim-biscuits
lua <<EOF
if ( vim.lsp ~= nil ) then
vim.cmd "packadd! nvim-lspconfig"
end
EOF
endif
endif
" Enables filetype detection as well as filetype specific indent rules and
" plugins
filetype indent plugin on "
" Enables filetype specific syntaxs
syntax on
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<tab>"
let g:UltiSnipsJumpBackwardTrigger="<S-tab>"

@ -0,0 +1,19 @@
{
"LuaSnip": { "branch": "master", "commit": "0df29db3543837f8b41597f2640397c5ec792b7b" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" },
"fzf": { "branch": "master", "commit": "82954258c1c9f61bb6bb764c51470ffbcee01b6c" },
"fzf.vim": { "branch": "master", "commit": "1e054c1d075d87903647db9320116d360eb8b024" },
"gruvbox.nvim": { "branch": "main", "commit": "0940564208a490c173216c3b7d2188b0a5ad3491" },
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
"nvim-cmp": { "branch": "main", "commit": "41d7633e4146dce1072de32cea31ee31b056a131" },
"nvim-lspconfig": { "branch": "master", "commit": "bd405e45c5fb122c16af8f87fa2dd7ab1981b243" },
"nvim-surround": { "branch": "main", "commit": "633a0ab03159569a66b65671b0ffb1a6aed6cf18" },
"nvim-treesitter": { "branch": "master", "commit": "a6c655629cad421e432aa84af32cbfe35375113a" },
"ultimate-autopair.nvim": { "branch": "v0.6", "commit": "41d8b52183df39096d5a2918467cd6266282f64b" },
"vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" }
}

@ -0,0 +1,107 @@
return {{
"neovim/nvim-lspconfig",
dependencies={
"hrsh7th/cmp-nvim-lsp",
},
config=function()
local servers = { 'lua_ls', 'vimls', 'bashls', 'vale_ls' }
local capabilities = require('cmp_nvim_lsp').default_capabilities()
for _, lsp in ipairs(servers) do
require('lspconfig')[lsp].setup {
capabilities = capabilities,
}
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,
})
end,
--},{
-- "L3MON4D3/LuaSnip",
-- dependencies={
-- "saadparwaiz1/cmp_luasnip",
-- "rafamadriz/friendly-snippets"
-- },
-- config=function ()
-- require("luasnip.loaders.from_vscode").lazy_load()
-- end,
-- keys = {
-- { "<tab>", function ()
-- return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
-- end, expr = true, silent = true, mode = "i"
-- },
-- { "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
-- { "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
-- }
},{
"hrsh7th/nvim-cmp",
dependencies={
"neovim/nvim-lspconfig",
--"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
},
opts=function()
local cmp = require("cmp")
local capabilities = require('cmp_nvim_lsp').default_capabilities()
return {
snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
--vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
-- require('snippy').expand_snippet(args.body) -- For `snippy` users.
-- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
end,
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "path" },
{ name = "buffer" }
})
}
end
}}

@ -0,0 +1,25 @@
return{ {
"junegunn/fzf.vim",
dependencies="junegunn/fzf",
init = function( lazy )
vim.g.fzf_command_prefix="Fzf"
end,
config = function( lazy, opts)
vim.g.fzf_layout = {
window = {
width= 0.9,
height=0.8
}
}
vim.keymap.set('n', '<leader>f', ':FzfFiles<cr>', {desc="Fuzzy find files"})
vim.keymap.set('n', '<leader>b', ':FzfBuffers<cr>', {desc="Fuzzy find buffers"})
vim.keymap.set('n', '<leader>h', ':FzfHelptags<cr>', {desc="Fuzzy find help tags"})
vim.keymap.set('n', '<leader>/', ':FzfRg ', {desc="Fuzzy find RG"})
vim.keymap.set('n', '\\/', ':FzfRg ^#<cr> ', {desc="Fuzzy find headings"})
end
} }

@ -0,0 +1,21 @@
return {{
"ellisonleao/gruvbox.nvim",
lazy = false,
priority=1000,
opts={
terminal_colors = true,
italic = {
strings = false,
emphasis = false,
comments = true,
operators = false,
folds = true,
}
}
}}
-- Colourscheme settings
-- vim.g.gruvbox_italic=1
-- vim.g.gruvbox_hls_cursor="red"
-- vim.opt.termguicolors=true
--vim.cmd('colorscheme gruvbox')

@ -0,0 +1,3 @@
return { {
"tpope/vim-fugitive"
} }

@ -0,0 +1,4 @@
return {{
"kylechui/nvim-surround",
opts={}
}}

@ -0,0 +1,14 @@
return {{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
opts = {
ensure_installed = "all",
highlight = {
enable = true
},
indent = {
enable = true
}
}
}}

@ -0,0 +1,11 @@
return {{
'altermo/ultimate-autopair.nvim',
event={'InsertEnter','CmdlineEnter'},
branch='v0.6', --recomended as each new version will have breaking changes
opts={
tabout={
enable=true
}
},
}}

@ -1 +0,0 @@
Subproject commit d2bb7878622e4c16203acf1c92a0f4bc7ac58003

@ -1,4 +0,0 @@
[flake8]
exclude = .git,__pycache__,autoload,doc
max-complexity = 10
max-line-length = 100

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2017 Filip Szymański
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@ -1,19 +0,0 @@
# deoplete-abook
`Deoplete-abook` offers asynchronous completion of email addresses in [Mutt](http://www.mutt.org/) using [abook](http://abook.sourceforge.net/) contacts stored in a plain text database.
Inspired by [Greg Hurrell's](https://github.com/wincent) Vim screencast [#58](https://www.youtube.com/watch?v=BNnSjJOpXDk).
## Installation
To install `deoplete-abook`, use your favorite [Neovim](https://neovim.io/) plugin manager.
#### Using [vim-plug](https://github.com/junegunn/vim-plug)
```vim
Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'}
Plug 'fszymanski/deoplete-abook'
```
## Documentation
For more information, see `:help deoplete_abook.txt`.

@ -1,35 +0,0 @@
scriptencoding utf-8
" Copyright (c) 2017 Filip Szymański. All rights reserved.
" Use of this source code is governed by an MIT license that can be
" found in the LICENSE file.
function! s:check_deoplete() abort
if !empty(globpath(&runtimepath, 'plugin/deoplete.vim'))
call health#report_ok('Deoplete plugin is installed')
else
call health#report_error('Deoplete plugin is not installed', [
\ 'The deoplete plugin can be found here: ' .
\ 'https://github.com/Shougo/deoplete.nvim'
\ ])
endif
endfunction
function! s:check_addressbook() abort
let datafile = get(g:, 'deoplete#sources#abook#datafile',
\ expand('~/.abook/addressbook'))
if filereadable(datafile)
call health#report_ok('Addressbook file was found: ' . datafile)
else
call health#report_error('Addressbook file was not found',
\ ['help: deoplete_abook.txt'])
endif
endfunction
function! health#deoplete_abook#check() abort
call health#report_start('Dependencies')
call s:check_deoplete()
call s:check_addressbook()
endfunction
" vim: ts=2 et sw=2

@ -1,61 +0,0 @@
*deoplete_abook.txt* Deoplete source for abook contacts
Author: Filip Szymański <filip.szymanski@zoho.eu>
==============================================================================
CONTENTS *deoplete-abook-contents*
1. Introduction |deoplete-abook-introduction|
2. Configuration |deoplete-abook-configuration|
3. License |deoplete-abook-license|
4. Bugs |deoplete-abook-bugs|
5. Contributing |deoplete-abook-contributing|
==============================================================================
INTRODUCTION *deoplete-abook-introduction*
This deoplete[1] source offers asynchronous completion of email addresses
in Mutt[2] using abook[3] contacts stored in a plain text database.
Note: Inspired by Greg Hurrell's[4] Vim screencast #58[5].
==============================================================================
CONFIGURATION *deoplete-abook-configuration*
*g:deoplete#sources#abook#datafile*
Set this option to use an alternative addressbook file.
>
let g:deoplete#sources#abook#datafile = expand('~/path/to/addressbook')
<
Default: '~/.abook/addressbook'
Type: string
==============================================================================
LICENSE *deoplete-abook-license*
MIT
==============================================================================
BUGS *deoplete-abook-bugs*
If you find a bug please create an issue on GitHub.
https://github.com/fszymanski/deoplete-abook/issues
==============================================================================
CONTRIBUTING *deoplete-abook-contributing*
Think you can make this plugin better? Awesome. Fork it on GitHub and create
a pull request.
https://github.com/fszymanski/deoplete-abook
==============================================================================
[1] https://github.com/Shougo/deoplete.nvim
[2] http://www.mutt.org/
[3] http://abook.sourceforge.net/
[4] https://github.com/wincent
[5] https://www.youtube.com/watch?v=BNnSjJOpXDk
vim: tw=78 ts=8 ft=help norl

@ -1,64 +0,0 @@
# Copyright (c) 2017 Filip Szymański. All rights reserved.
# Use of this source code is governed by an MIT license that can be
# found in the LICENSE file.
import configparser
import os.path
import re
from .base import Base # pylint: disable=E0401
# pylint: disable=W0201,W0613
class Source(Base):
COLON_PATTERN = re.compile(r':\s?')
COMMA_PATTERN = re.compile(r'.+,\s?')
HEADER_PATTERN = re.compile(r'^(Bcc|Cc|From|Reply-To|To):(\s?|.+,\s?)')
def __init__(self, vim):
super().__init__(vim)
self.__cache = []
self.filetypes = ['mail']
self.mark = '[abook]'
self.matchers = ['matcher_length', 'matcher_full_fuzzy']
self.min_pattern_length = 0
self.name = 'abook'
def on_init(self, context):
self.__datafile = context['vars'].get('deoplete#sources#abook#datafile',
os.path.expanduser('~/.abook/addressbook'))
if not os.path.isfile(self.__datafile):
self.vim.err_write('[deoplete-abook] No such file: {0}\n'.format(self.__datafile))
def on_event(self, context):
self.__make_cache()
def gather_candidates(self, context):
if self.HEADER_PATTERN.search(context['input']) is not None:
if not self.__cache:
self.__make_cache()
return self.__cache
def get_complete_position(self, context):
colon = self.COLON_PATTERN.search(context['input'])
comma = self.COMMA_PATTERN.search(context['input'])
return max(colon.end() if colon is not None else -1,
comma.end() if comma is not None else -1)
def __make_cache(self):
addressbook = configparser.ConfigParser()
addressbook.read(self.__datafile)
for section in addressbook.sections():
emails = addressbook.get(section, 'email', fallback=None)
if emails is not None:
name = addressbook.get(section, 'name', fallback=None)
for email in emails.split(','):
if name is not None:
email = '"{0}" <{1}>'.format(name, email)
self.__cache.append({'word': email})
# vim: ts=4 et sw=4

@ -1 +0,0 @@
Subproject commit f3d1f14fa8a8cf882be39605fb037ee982c3f37c

@ -1 +0,0 @@
Subproject commit d582895f0e4e7bcc40e43ac2cb357afecfe5eda8

@ -1 +0,0 @@
Subproject commit 1c40f648d2b00e70beb4c473b7c0e32b633bd9ae

@ -1 +0,0 @@
Subproject commit ff6b8f022213c3d758478dad85d35febf92225e5

@ -1 +0,0 @@
Subproject commit d6aa21476b2854694e6aa7b0941b8992a906c5ec

@ -1 +0,0 @@
Subproject commit bf2885a95efdad7bd5e4794dd0213917770d79b7

@ -1 +0,0 @@
Subproject commit 5bda65472020c62def1ca52e6de2c0c5ba47fc7a

@ -1 +0,0 @@
Subproject commit 99ece6758ec49b04de983873e4117a390121fbb8

@ -1 +0,0 @@
Subproject commit 06e54cdfa38c2129bc555b6ee77d4086c3a74e5c

@ -1 +0,0 @@
Subproject commit dd4e62324ab1607aefdbeddc776489cf9826ee6e

@ -1 +0,0 @@
Subproject commit 53e1921e3ef015ef658e540c0aa9c4835f9c18a6

@ -1 +0,0 @@
Subproject commit f9c0b8eafea641ba27fd261b2b244944f87e6fd4

@ -1 +0,0 @@
Subproject commit 3727f089410e23ae113be6222e8a08dd2613ecf2

@ -1 +0,0 @@
Subproject commit 6e818d5614d5fc18d95a48c92b89e6db39f9e3d6

@ -1 +0,0 @@
Subproject commit 11ed125209e2277d439cf6d0340c6fca263cb09b

@ -1 +0,0 @@
Subproject commit ddfa49f9ece73aca44d2b45d693e7b58adbf8f8c

@ -1 +0,0 @@
Subproject commit 24afe922e6a05891756ecf331f39a1f6743d3d5a

@ -1 +0,0 @@
Subproject commit 43ed873ba09ac2d71992e773c68c75c6b85686c7

@ -1 +0,0 @@
Subproject commit aeb933272e72617f7c4d35e1f003be16836b948d

@ -1 +0,0 @@
Subproject commit 784794dd8854b1eee2a9e718b8b1d941a20516b6

@ -1 +0,0 @@
Subproject commit 43576e84d3034bccb1216f39f51ed36d945d7b96

@ -1,22 +0,0 @@
" Prefixes all of the fzf commands
let g:fzf_command_prefix = 'Fzf'
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.8 } }
" Mappings for common Fzf commands
nnoremap <leader>f = :FzfFiles<cr>
nnoremap <leader>b = :FzfBuffers<cr>
nnoremap <leader>h = :FzfHelptags<cr>
" The space is important at the end of this mapping
nnoremap <leader>/ = :FzfRg
function! s:read_template_into_buffer(template)
" has to be a function to avoid the extra space fzf#run insers otherwise
execute '0r ~/Templates/'.a:template
endfunction
command! -bang -nargs=* LoadTemplate call fzf#run({
\ 'source': 'ls -1 ~/Templates',
\ 'down': 20,
\ 'sink': function('<sid>read_template_into_buffer')
\ })

@ -0,0 +1,125 @@
-- Swap : and ; in normal mode
vim.keymap.set('n', ';',':', {desc="Swaps semi colon to colon"})
vim.keymap.set('n', ':',';', {desc="Swaps semi colon to colon"})
-- Swap : and ; in visual mode
vim.keymap.set('v', ';',':', {desc="Swaps semi colon to colon"})
vim.keymap.set('v', ':',';', {desc="Swaps semi colon to colon"})
-- Make jj in insert mode go to normal mode
vim.keymap.set('i', 'jj','<Esc>', {desc="jj to escape"})
-- Make ctrl+hjkl change focus between windows
vim.keymap.set('n', '<c-h>','<c-w>h', {desc="Move to left window"})
vim.keymap.set('n', '<c-j>','<c-w>j', {desc="Move to below window"})
vim.keymap.set('n', '<c-k>','<c-w>k', {desc="Move to above window"})
vim.keymap.set('n', '<c-l>','<c-w>l', {desc="Move to left window"})
if vim.fn.has('clipboard') == 1 then
vim.keymap.set('v', '<c-c>','"+y"', {desc="Copy to system clipboard"})
vim.keymap.set('i', '<c-v>','<Esc>"+pa', {desc="Paste from system clipboard"})
end
-- Fix previous spelling mistake in insert mode
-- Shamelessly taken from https://castel.dev/post/lecture-notes-1/
-- <c-g>u - break undo sequence (new change)
-- <Esc> - go into normal mode
-- [s - go to previous spelling mistake
-- 1z= - change to the top spelling suggestion
-- `] - go to the end of the last changed word
-- a - enter insert mode
-- <c-g>u - break undo sequence (new change)
vim.keymap.set('i', '<c-l>','<c-g>u<Esc>[s1z=`]a<c-g>u', {desc="Fix previous spelling mistake"})
-- Do Shebang line
-- <Esc> - go into normal mode
-- :silent - run command silently
-- s/^/…/ - write at the begining of the line
-- <bar> - used to seperate commands
-- filetype detect - attempt to detect filetype again
-- :nohlsearch - un-hilight the search pattern
vim.keymap.set('i', '<C-y>', '<Esc>:silent s/^/#!\\/usr\\/bin\\/env / <bar> filetype detect<cr>:nohlsearch<cr>o', {desc="do shebang line"})
-- Makes delete key work properly in insert mode
vim.keymap.set('i', '<del>', '<Right><BS>', {desc="Delete next character"})
-- Compiles documents
-- The uppercase versions don't push enter an extra time resulting in seeing
-- the output of the compile command. Useful for debugging
vim.keymap.set('n', '<leader>cc', ':w! | !compiler "<c-r>%"<CR><CR>' )
vim.keymap.set('n', '<leader>cC', ':w! | !compiler "<c-r>%"<CR>' )
vim.keymap.set('n', '<leader>cl', ':w! | !compiler "<c-r>%" letter<CR><CR>' )
vim.keymap.set('n', '<leader>cL', ':w! | !compiler "<c-r>%" letter<CR>' )
vim.keymap.set('n', '<leader>cf', ':w! | !rt partialPdf --overwrite "<c-r>%" <CR><CR>' )
vim.keymap.set('n', '<leader>cF', ':w! | !rt partialPdf --overwrite "<c-r>%" <CR>' )
vim.keymap.set('n', '<leader>Cf', ':w! | !rt fullReport . --overwrite <CR><CR>' )
vim.keymap.set('n', '<leader>CF', ':w! | !rt fullReport . --overwrite <CR>' )
-- Opens the compiled documents
-- If something like html, it doesn't need to be compiled first
vim.keymap.set('n', '<leader>co', ':!opout "<c-r>%"<CR><CR>', {desc="open compiled document"})
-- Makes vim default to very magic searching
vim.keymap.set({'n','v'}, '/', '/\\v', {desc="very magic search"})
-- re-select visual selection when using < or >
vim.keymap.set('v', '<', '<gv', {desc="Reduce indent and re-select"})
vim.keymap.set('v', '>', '>gv', {desc="Increase indent and re-select"})
-- Easy quickfix jumping
-- zO - Opens folds
-- zz - Centers vertically
vim.keymap.set('n', '[c', ':cprevious<cr>zOzz', {desc="previous quickfix"})
vim.keymap.set('n', ']c', ':cnext<cr>zOzz', {desc="next quickfix"})
-- Debugging mappings
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
--vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
-- Open currend directory
vim.keymap.set('n', '-', ':e %:h<cr>', {desc="Open directory"})
-- Leaving these as old-style to remind me to come back and make them proper lua
vim.cmd([[
" Mappings for my encoding functions
vnoremap [b :call mine#encoding#wrapper('base64Encode')<cr>
vnoremap ]b :call mine#encoding#wrapper('base64Decode')<cr>
vnoremap [u :call mine#encoding#wrapper('urlEncode')<cr>
vnoremap ]u :call mine#encoding#wrapper('urlDecode')<cr>
vnoremap [U :call mine#encoding#wrapper('urlEncodeAll')<cr>
vnoremap ]U :call mine#encoding#wrapper('urlDecode')<cr>
vnoremap [h :call mine#encoding#wrapper('hexEncode')<cr>
vnoremap ]h :call mine#encoding#wrapper('hexDecode')<cr>
" Run proselint and put it in the quickfix list
nnoremap <leader>p :call mine#functions#proselint()<CR>
if has('nvim')
if !empty($SUDO_ASKPASS)
cnoremap WW w !sudo -A tee % > /dev/null
else
cnoremap WW echo "SUDO_ASKPASS variable needs to be set"<cr>
endif
else
cnoremap WW w !sudo tee % > /dev/null
endif
nnoremap <leader>ve :edit $HOME/.config/nvim/init.vim<cr>
]])

@ -1,95 +0,0 @@
" Swaps semi colon to colon in normal mode
nnoremap ; :
nnoremap : ;
" Swaps semi colon to colon in visual mode
vnoremap ; :
vnoremap : ;
" Make jj in insert mode go to normal mode
inoremap jj <Esc>
" Make ctrl+hjkl change focus between windows
nnoremap <c-h> <c-w>h
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-l> <c-w>l
if has('clipboard')
" Make Ctrl C and Ctrl V work on system clipboard
" if in visual or insert mode respectively
vnoremap <C-c> "+y
inoremap <C-v> <Esc>"+pa
endif
" Fix previous spelling mistake in insert mode
" Shamelessly taken from https://castel.dev/post/lecture-notes-1/
" <c-g>u - break undo sequence (new change)
" <Esc> - go into normal mode
" [s - go to previous spelling mistake
" 1z= - change to the top spelling suggestion
" `] - go to the end of the last changed word
" a - enter insert mode
" <c-g>u - break undo sequence (new change)
inoremap <C-l> <c-g>u<Esc>[s1z=`]a<c-g>u
" Do Shebang line
" <Esc> - go into normal mode
" :silent - run command silently
" s/^/…/ - write at the begining of the line
" <bar> - used to seperate commands
" filetype detect - attempt to detect filetype again
" :nohlsearch - un-hilight the search pattern
inoremap <C-y> <Esc>:silent s/^/#!\/usr\/bin\/env / <bar> filetype detect<cr>:nohlsearch<cr>o
" alternative: inoremap <C-y> <Esc>:silent exe ".!which <cWORD>" <bar> s/^/#!/ <bar> filetype detect<cr>YpDi
" Mappings for my encoding functions
vnoremap [b :call mine#encoding#wrapper('base64Encode')<cr>
vnoremap ]b :call mine#encoding#wrapper('base64Decode')<cr>
vnoremap [u :call mine#encoding#wrapper('urlEncode')<cr>
vnoremap ]u :call mine#encoding#wrapper('urlDecode')<cr>
vnoremap [U :call mine#encoding#wrapper('urlEncodeAll')<cr>
vnoremap ]U :call mine#encoding#wrapper('urlDecode')<cr>
vnoremap [h :call mine#encoding#wrapper('hexEncode')<cr>
vnoremap ]h :call mine#encoding#wrapper('hexDecode')<cr>
" Makes the delete key work in insert mode
inoremap <Del> <Right><BS>
" Compiles documents
" The uppercase versions don't push enter an extra time resulting in seeing
" the output of the compile command. Useful for debugging
nnoremap <leader>cc :w! \| !compiler <c-r>%<CR><CR>
nnoremap <leader>cC :w! \| !compiler <c-r>%<CR>
nnoremap <leader>cl :w! \| !compiler <c-r>% letter<CR><CR>
nnoremap <leader>cL :w! \| !compiler <c-r>% letter<CR>
" Opens the compiled documents
" If something like html, it doesn't need to be compiled first
nnoremap <leader>co :!opout <c-r>%<CR><CR>
" Makes vim default to "very magic" searching
nnoremap / /\v
vnoremap / /\v
" Makes vim re-select visual selection when using < or >
vnoremap < <gv
vnoremap > >gv
nnoremap [c :cprevious<cr>zOzz
nnoremap ]c :cnext<cr>zOzz
" Run proselint and put it in the quickfix list
nnoremap <leader>p :call mine#functions#proselint()<CR>
if has('nvim')
if !empty($SUDO_ASKPASS)
cnoremap WW w !sudo -A tee % > /dev/null
else
cnoremap WW echo "SUDO_ASKPASS variable needs to be set"<cr>
endif
else
cnoremap WW w !sudo tee % > /dev/null
endif
nnoremap <leader>ve :edit $HOME/.config/nvim/init.vim<cr>

@ -0,0 +1,77 @@
-- Set spellcheck language to english
vim.opt.spelllang=en_gb
-- Set default split to be right or bottom
vim.opt.splitright=true
vim.opt.splitbelow=true
-- Tell vim it's a fast terminal
vim.opt.ttyfast=true
-- set relative ruler with current line as real line number
vim.opt.relativenumber=true
vim.opt.number=true
-- Allows vim to background buffers without saving
vim.opt.hidden=true
-- Sets vim to smart case
-- If search is all lowercase, search insensitively; if you include a capital
-- it becomes a case sensitive match
vim.opt.ignorecase=true
vim.opt.smartcase=true
-- Makes vim try to keep 5 lines visible at the top and bottom
vim.opt.scrolloff=5
-- set tabwidth
vim.opt.autoindent=true
vim.opt.smartindent=true
vim.opt.shiftwidth=4
vim.opt.tabstop=4
-- Add invisivle character reperesentation
vim.opt.list=true
vim.opt.listchars={
tab="» ",
trail=""
}
-- Stops vim wrapping in the middle of a word
vim.opt.linebreak=true
-- Sets tool for opening non-text files with gx
-- If in netrw, this is run with just x
vim.g.netrw_browsex_viewer = "opout"
-- Automatically insert comment leader after hitting enter (r) or when pushing o or O (o)
vim.opt.formatoptions:append('r')
vim.opt.formatoptions:append('o')
-- Show the results of the substitute command as you type
vim.opt.inccommand = 'nosplit'
-- Sets the default fold method to indent
vim.opt.foldmethod = 'indent'
-- Need to find out how to do this in lua
vim.cmd([[
if executable('rg')
set grepprg=rg\ --vimgrep\ --no-heading\ --color=never\ --glob=\"!shell-logs/*\"
set grepformat=%f:%l:%c:%m,%f:%l:%m
endif
augroup colorcols
autocmd!
autocmd FileType,VimEnter,BufEnter * call mine#functions#colorcols()
augroup end
" share data between nvim instances (registers etc)
augroup SHADA
autocmd!
autocmd CursorHold,TextYankPost,FocusGained,FocusLost *
\ if exists(':rshada') | rshada | wshada | endif
augroup END
]])

@ -1,73 +0,0 @@
" Set colourscheme to gruvbox
let g:gruvbox_italic=1
set termguicolors
colorscheme gruvbox
" Set spellcheck language to english
set spelllang=en_gb
" Set default split to be right or bottom
set splitright
set splitbelow
" Tell vim it's a fast terminal
set ttyfast
" set relative ruler with current line as real line number
set relativenumber
set number
" Allows vim to background buffers without saving
set hidden
" Sets vim to smart case
" If search is all lowercase, search insensitively; if you include a capital
" it becomes a case sensitive match
set ignorecase smartcase
" Makes vim try to keep 5 lines visible at the top and bottom
set scrolloff=5
" set tabwidth
set autoindent
set smartindent
set shiftwidth=4
set tabstop=4
" Add invisivle character reperesentation
set list listchars=tab:»\ ,trail:\␣,eol:↩
" Stops vim wrapping in the middle of a word
set linebreak
" Sets tool for opening non-text files with gx
" If in netrw, this is run with just x
let g:netrw_browsex_viewer = "opout"
" Automatically insert comment leader after hitting enter
set formatoptions+=r
" Automatically insert comment leader after hitting o or O
set formatoptions+=o
" Show the results of the substitute command as you type
set inccommand=nosplit
" Sets the default fold method to indent
set foldmethod=indent
if executable('rg')
set grepprg=rg\ --vimgrep\ --no-heading\ --color=never\ --glob=\"!shell-logs/*\"
set grepformat=%f:%l:%c:%m,%f:%l:%m
endif
augroup colorcols
autocmd!
autocmd FileType,VimEnter,BufEnter * call mine#functions#colorcols()
augroup end
" share data between nvim instances (registers etc)
augroup SHADA
autocmd!
autocmd CursorHold,TextYankPost,FocusGained,FocusLost *
\ if exists(':rshada') | rshada | wshada | endif
augroup END

@ -1,11 +0,0 @@
lua <<EOF
require'nvim-treesitter.configs'.setup {
ensure_installed = "all",
highlight = {
enable = true
},
indent = {
enable = true
}
}
EOF

@ -0,0 +1,2 @@
Additionally
vacuumed

@ -0,0 +1,54 @@
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" , is the delimiter
" " is word separator
" no support for escape character
:syntax match end ',' nextgroup=col00
:syntax match col13 ',[^,]*' nextgroup=end
:syntax match col13 ',\"[^"]*\"' nextgroup=end
:syntax match col12 ',[^,]*' nextgroup=col13
:syntax match col12 ',\"[^"]*\"' nextgroup=col13
:syntax match col11 ',[^,]*' nextgroup=col12
:syntax match col11 ',\"[^"]*\"' nextgroup=col12
:syntax match col10 ',[^,]*' nextgroup=col11
:syntax match col10 ',\"[^"]*\"' nextgroup=col11
:syntax match col09 ',[^,]*' nextgroup=col10
:syntax match col09 ',\"[^"]*\"' nextgroup=col10
:syntax match col08 ',[^,]*' nextgroup=col09
:syntax match col08 ',\"[^"]*\"' nextgroup=col09
:syntax match col07 ',[^,]*' nextgroup=col08
:syntax match col07 ',\"[^"]*\"' nextgroup=col08
:syntax match col06 ',[^,]*' nextgroup=col07
:syntax match col06 ',\"[^"]*\"' nextgroup=col07
:syntax match col05 ',[^,]*' nextgroup=col06
:syntax match col05 ',\"[^"]*\"' nextgroup=col06
:syntax match col04 ',[^,]*' nextgroup=col05
:syntax match col04 ',\"[^"]*\"' nextgroup=col05
:syntax match col03 ',[^,]*' nextgroup=col04
:syntax match col03 ',\"[^"]*\"' nextgroup=col04
:syntax match col02 ',[^,]*' nextgroup=col03
:syntax match col02 ',\"[^"]*\"' nextgroup=col03
:syntax match col01 ',[^,]*' nextgroup=col02
:syntax match col01 ',\"[^"]*\"' nextgroup=col02
:syntax match col00 '[^,]*' nextgroup=col01
:syntax match col00 '\"[^"]*\"' nextgroup=col01
:syntax match start '^' nextgroup=col00
:hi col13 ctermfg=gray
:hi col12 ctermfg=darkyellow
:hi col11 ctermfg=darkcyan
:hi col10 ctermfg=darkmagenta
:hi col09 ctermfg=darkgreen
:hi col08 ctermfg=darkred
:hi col07 ctermfg=darkblue
:hi col06 ctermfg=white
:hi col05 ctermfg=yellow
:hi col04 ctermfg=cyan
:hi col03 ctermfg=magenta
:hi col02 ctermfg=green
:hi col01 ctermfg=red
:hi col00 ctermfg=blue
Loading…
Cancel
Save