~kota/dots

23c0adf755c6e7d82983952fad1ef4b5a37ac1a7 — Dakota Walsh a month ago 32ff792
more neovim updates

I'd love to commit these all in small clean logical steps, but I'm just
not going to.
M neovim/.config/nvim/after/ftplugin/go.lua => neovim/.config/nvim/after/ftplugin/go.lua +10 -0
@@ 1,6 1,12 @@
local map = vim.api.nvim_buf_set_keymap
local cmd = vim.api.nvim_buf_create_user_command
local noremap = { noremap = true }

vim.o.softtabstop = 4
vim.o.shiftwidth = 4
vim.o.tabstop = 4
vim.o.expandtab = false

-- Run the project
map(0, "n", "<leader>r", "<cmd>GoRun<cr>", noremap)



@@ 27,3 33,7 @@ map(0, "n", "<leader>tc", "<cmd>GoCoverageToggle<cr>", noremap)

-- Swap to test or back
map(0, "n", "<S-Tab>", "<cmd>GoAlternate!<cr>", noremap)

-- Add GoJson command.
-- Simply paste in some json, select it and run :GoJson on it.
cmd(0, 'GoJson', "'<,'>!gojson", {range=0})

A neovim/.config/nvim/after/ftplugin/hare.lua => neovim/.config/nvim/after/ftplugin/hare.lua +8 -0
@@ 0,0 1,8 @@
local map = vim.api.nvim_buf_set_keymap
local noremap = { noremap = true }

-- run the project
map(0, "n", "<leader>r", "<cmd>!hare run %<cr>", noremap)

-- build the project
map(0, "n", "<leader>b", "<cmd>make<cr>", noremap)

M neovim/.config/nvim/after/ftplugin/mail.lua => neovim/.config/nvim/after/ftplugin/mail.lua +0 -1
@@ 1,2 1,1 @@
vim.o.autoindent = false
vim.cmd("call pencil#init()")

M neovim/.config/nvim/after/ftplugin/markdown.lua => neovim/.config/nvim/after/ftplugin/markdown.lua +0 -1
@@ 3,4 3,3 @@ vim.o.shiftwidth=2
vim.o.expandtab = true
vim.o.tw = 80
vim.o.wrap = true
vim.cmd("call pencil#init()")

M neovim/.config/nvim/after/ftplugin/text.lua => neovim/.config/nvim/after/ftplugin/text.lua +0 -1
@@ 3,4 3,3 @@ vim.o.shiftwidth=2
vim.o.expandtab = true
vim.o.tw = 80
vim.o.wrap = true
vim.cmd("call pencil#init()")

M neovim/.config/nvim/after/ftplugin/wiki.lua => neovim/.config/nvim/after/ftplugin/wiki.lua +2 -3
@@ 1,6 1,5 @@
vim.o.tabstop=2
vim.o.shiftwidth=2 
vim.o.tabstop = 2
vim.o.shiftwidth = 2
vim.o.expandtab = true
vim.o.tw = 80
vim.o.wrap = true
vim.cmd("call pencil#init()")

M neovim/.config/nvim/lua/maps.lua => neovim/.config/nvim/lua/maps.lua +82 -38
@@ 1,5 1,6 @@
local map = vim.api.nvim_set_keymap
local noremap = { noremap = true }
local snoremap = { noremap = true, silent = true }

-- Move between splits without C-W prefix
map('n', '<C-J>', '<C-W><C-J>', noremap)


@@ 23,21 24,79 @@ map('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
map('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })

-- Disable search highlighting
map('n', '<space>n', ':nohl<CR>', noremap)
map('n', '<space>n', ':nohl<CR>', snoremap)

-- Toggle hidden characters
map('n', '<space>sh', ':set list!<cr>', noremap)
map('n', '<space>sh', ':set list!<cr>', snoremap)

-- Toggle spell checking
map('n', '<space>ss', ':set spell!<cr>', snoremap)

-- Toggle line wrapping
map('n', '<space>sw', ':set wrap!<cr>', snoremap)

-- Toggle virtual edit (move around freely in the window)
map('n', '<space>sv', '', {
	noremap = true,
	silent = true,
	callback = function()
		if (vim.o.virtualedit == '') then
			vim.o.virtualedit = 'all'
		else
			vim.o.virtualedit = ''
		end
	end,
})

-- Toggle number
map('n', '<space>sn', '', {
	noremap = true,
	silent = true,
	callback = function()
		vim.o.relativenumber = not vim.o.relativenumber
		vim.o.number = not vim.o.number
	end,
})

-- Repeat macros with , because @@ is too long for me lol
map('n', ',', '@@', noremap)

-- Recreate some of vim-unimpaired
-- map('n', '[a', ':previous<cr>', snoremap)
-- map('n', ']a', ':next<cr>', snoremap)
-- map('n', '[A', ':first<cr>', snoremap)
-- map('n', ']A', ':last<cr>', snoremap)
--
-- map('n', '[b', ':bprevious<cr>', snoremap)
-- map('n', ']b', ':bnext<cr>', snoremap)
-- map('n', '[B', ':bfirst<cr>', snoremap)
-- map('n', ']B', ':blast<cr>', snoremap)
--
-- map('n', '[l', ':lprevious<cr>', snoremap)
-- map('n', ']l', ':lnext<cr>', snoremap)
-- map('n', '[L', ':lfirst<cr>', snoremap)
-- map('n', ']L', ':llast<cr>', snoremap)
--
-- map('n', '[q', ':cprevious<cr>', snoremap)
-- map('n', ']q', ':cnext<cr>', snoremap)
-- map('n', '[Q', ':cfirst<cr>', snoremap)
-- map('n', ']Q', ':clast<cr>', snoremap)
--
-- map('n', '[t', ':tprevious<cr>', snoremap)
-- map('n', ']t', ':tnext<cr>', snoremap)
-- map('n', '[T', ':tfirst<cr>', snoremap)
-- map('n', ']T', ':tlast<cr>', snoremap)
--
-- Close other windows
map('n', '<space>o', ':only<CR>', noremap)
map('n', '<space>o', ':only<CR>', snoremap)


-- Hop binds
map('n', '<space><space>', "", {
	noremap = true,
	callback = function()
		require'hop'.hint_char2()
	end,
	noremap = true
		require 'hop'.hint_char2()
	end
})

-- Telescope binds


@@ 99,49 158,34 @@ map("n", "<space>ca", "", {
-- Trouble error list
map("n", "<space>el", ":TroubleToggle<CR>", noremap)

-- Fugitive 3-way diff
map("n", "<leader>gd", ":Gvdiff<CR>", noremap)
map("n", "gh", ":diffget //2<CR>", noremap)
map("n", "gl", ":diffget //3<CR>", noremap)

-- Use dial.nvim (speed-dating clone) instead of defaults
map("n", "<C-a>", require("dial.map").inc_normal(), noremap)
map("n", "<C-x>", require("dial.map").dec_normal(), noremap)
map("v", "<C-a>", require("dial.map").inc_visual(), noremap)
map("v", "<C-x>", require("dial.map").dec_visual(), noremap)
map("v", "g<C-a>", require("dial.map").inc_gvisual(), noremap)
map("v", "g<C-x>", require("dial.map").dec_gvisual(), noremap)
map("n", "<C-a>", require("dial.map").inc_normal(), snoremap)
map("n", "<C-x>", require("dial.map").dec_normal(), snoremap)
map("v", "<C-a>", require("dial.map").inc_visual(), snoremap)
map("v", "<C-x>", require("dial.map").dec_visual(), snoremap)
map("v", "g<C-a>", require("dial.map").inc_gvisual(), snoremap)
map("v", "g<C-x>", require("dial.map").dec_gvisual(), snoremap)

-- Align text (EasyAlign)
map("v", "ga", "<Plug>(EasyAlign)", noremap)
map("n", "ga", "<Plug>(EasyAlign)", noremap)
map("v", "ga", "<Plug>(EasyAlign)", snoremap)
map("n", "ga", "<Plug>(EasyAlign)", snoremap)

-- Show highlight group with F12
map("n", "<F12>", ":TSHighlightCapturesUnderCursor<CR>", noremap)
map("n", "<F12>", ":TSHighlightCapturesUnderCursor<CR>", snoremap)

-- Map %% to return my current working directory
map("c", "%%", "<C-R>=expand('%:h').'/'<cr>", noremap)
map("c", "%%", "<C-R>=expand('%:h').'/'<cr>", snoremap)

-- Open undotree
map("n", "<space>su", ":UndotreeToggle<CR>", noremap)
map("n", "<space>su", ":UndotreeToggle<CR>", snoremap)

-- Schlepp
map("v", "<up>", "<Plug>SchleppUp", noremap)
map("v", "<down>", "<Plug>SchleppDown", noremap)
map("v", "<left>", "<Plug>SchleppLeft", noremap)
map("v", "<right>", "<Plug>SchleppRight", noremap)
map("v", "<up>", "<Plug>SchleppUp", snoremap)
map("v", "<down>", "<Plug>SchleppDown", snoremap)
map("v", "<left>", "<Plug>SchleppLeft", snoremap)
map("v", "<right>", "<Plug>SchleppRight", snoremap)

-- Date command ... but in lua?
map("n", "<space>dd", "", {
	noremap = true,
	callback = function()
		vim.api.nvim_put({os.date("%Y-%m-%dT%H:%M:%S")}, "l", false, true)
	end,
})
map("n", "<space>dd", [[:exec 'normal a'.substitute(system("date -Iseconds"),"[\n]*$","","")<CR>]], snoremap)

map("n", "<space>ds", "", {
	noremap = true,
	callback = function()
		vim.api.nvim_put({os.date("%Y-%m-%d")}, "l", false, true)
	end,
})
map("n", "<space>ds", [[:exec 'normal a'.substitute(system("date +%Y-%m-%d"),"[\n]*$","","")<CR>]], snoremap)

M neovim/.config/nvim/lua/plugins/init.lua => neovim/.config/nvim/lua/plugins/init.lua +32 -46
@@ 1,9 1,10 @@
require('packer').startup(function(use)
  use 'wbthomason/packer.nvim'
	use 'wbthomason/packer.nvim'

	-- "Libraries"
	use 'nvim-lua/plenary.nvim'
	use 'tpope/vim-repeat'
	use 'antoinemadec/FixCursorHold.nvim'

	-- Startup speed improvement (must call require before others plugins!)
	use {


@@ 12,6 13,7 @@ require('packer').startup(function(use)
	}

	-- Colorscheme
	use '~/g/left.nvim'
	use 'RRethy/nvim-base16'
	use {
		'nvim-lualine/lualine.nvim',


@@ 19,7 21,13 @@ require('packer').startup(function(use)
	}

	-- Advanced syntax highlighting and more...
	use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' }
	use {
		'nvim-treesitter/nvim-treesitter',
		run = ':TSUpdate',
		config = function()
			require('plugins.treesitter')
		end
	}
	use {
		'lewis6991/spellsitter.nvim',
		config = function() require('spellsitter').setup() end


@@ 28,7 36,7 @@ require('packer').startup(function(use)
	use 'nvim-treesitter/playground' -- Show highlight group w/ f12

	-- LSP
 	use 'neovim/nvim-lspconfig'
	use 'neovim/nvim-lspconfig'
	use 'hrsh7th/cmp-nvim-lsp' -- TODO: swap for nvim-compleet eventually...
	use 'hrsh7th/cmp-buffer'
	use 'hrsh7th/cmp-path'


@@ 46,13 54,14 @@ require('packer').startup(function(use)
	use 'hrsh7th/vim-vsnip'

	-- Language support
	use 'https://git.sr.ht/~sircmpwn/hare.vim'
	use 'mattn/emmet-vim'
	use 'jose-elias-alvarez/null-ls.nvim'
	use 'jose-elias-alvarez/nvim-lsp-ts-utils'
	use 'mfussenegger/nvim-jdtls'
	use {
		'fatih/vim-go',
		run = ':GoUpdateBinaries',
		ft = {'go', 'gomod', 'gowork'}
	}

	-- Hop around the page quickly


@@ 60,27 69,28 @@ require('packer').startup(function(use)
		'phaazon/hop.nvim', -- TODO: theme with base16
		branch = 'v1', -- optional but strongly recommended
		config = function()
			require'hop'.setup()
			require 'hop'.setup()
		end
	}

	-- Fuzzy searcher
	use 'nvim-telescope/telescope.nvim'
	-- use 'nvim-telescope/telescope-ui-select.nvim'
	use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }

	-- dirbuf as filemanager
	use "elihunter173/dirbuf.nvim"

	-- Toggleterm to quickly open a terminal
	use 'akinsho/toggleterm.nvim'
	-- Draw ASCII diagrams :VBox
	use "jbyuki/venn.nvim"

	-- Wiki
	use { 'lervag/wiki.vim', ft = 'wiki' }
	use { 'lervag/wiki-ft.vim', ft = 'wiki' }
	use { '~/g/wiki-ft.vim', ft = 'wiki' }

	-- Auto-close brackets and such when hitting enter
	-- use 'rstacruz/vim-closer'
	use 'tpope/vim-endwise'
	use 'rstacruz/vim-closer'
	use 'tpope/vim-endwise' -- TODO: Add markdown ``` support

	-- Comment things in/out
	use {


@@ 90,8 100,10 @@ require('packer').startup(function(use)

	-- Git improvements
	use 'tpope/vim-fugitive'
	use 'https://git.sr.ht/~willdurand/srht.vim'
	use 'junegunn/gv.vim'
	use {'lewis6991/gitsigns.nvim', requires = { 'nvim-lua/plenary.nvim' }}
	use 'tpope/vim-unimpaired'
	use { 'lewis6991/gitsigns.nvim', requires = { 'nvim-lua/plenary.nvim' } }

	-- Operate on "sandwhiched" text
	use {


@@ 105,6 117,9 @@ require('packer').startup(function(use)
	-- Adds a cx "exchange" operator to swap selections
	use 'tommcdo/vim-exchange'

	-- Slightly improved %
	use 'andymass/vim-matchup'

	-- Expands on the idea of commands like di'
	use 'wellle/targets.vim'



@@ 123,27 138,15 @@ require('packer').startup(function(use)
	-- Show color codes as their color
	use {
		'rrethy/vim-hexokinase',
		run = 'make hexokinase' 
		run = 'make hexokinase'
	}

	-- Move blocks of selected text around
	use 'zirrostig/vim-schlepp'

	-- Misc ][ bindings
	-- use 'tpope/vim-unimpaired' -- TODO: create bindings from lua myself
	
	-- Make * search work in visual mode
	use 'bronson/vim-visual-star-search'

	-- Pencil to do "smart wrapping" in text and markdown files
	use 'preservim/vim-pencil'

	-- Emmet.vim for easier HTML writing
	use {
		'mattn/emmet-vim',
		ft = {'html', 'css'}
	}

	-- Display :StartupTime
	use 'dstein64/vim-startuptime'
end)


@@ 157,25 160,16 @@ vim.cmd([[
]])

require('plugins.theme')
require('plugins.treesitter')
require('plugins.lsp')
require('plugins.git')

require("dirbuf").setup {
    show_hidden = false,
    sort_order = "directories_first",
    write_cmd = "DirbufSync",
}

require("toggleterm").setup{
	open_mapping = [[<C-\>]],
	direction = 'float',
	float_opts = {
		border = 'curved'
	}
	show_hidden = false,
	sort_order = "directories_first",
	write_cmd = "DirbufSync",
}

require('telescope').setup{}
require('telescope').setup {}
require('telescope').load_extension('fzf')

-- hexokinase


@@ 183,14 177,6 @@ vim.g.Hexokinase_optInPatterns = 'full_hex,rgb,rgba,hsl,hsla'

-- wiki.vim
vim.g.wiki_root = "~/docs/memex"
vim.g.wiki_filetypes = {'md', 'wiki'}

-- emmet trigger key
vim.g.user_emmet_leader_key = '<C-S>'
vim.g.wiki_filetypes = { 'md', 'wiki' }

-- vim-go
vim.g.go_highlight_types = 1
vim.g.go_highlight_fields = 1
vim.g.go_highlight_functions = 1
vim.g.go_highlight_function_calls = 1
vim.g.go_highlight_build_constraints = 1

M neovim/.config/nvim/lua/plugins/lsp.lua => neovim/.config/nvim/lua/plugins/lsp.lua +44 -32
@@ 1,9 1,5 @@
-- Setup nvim-cmp.
local feedkey = function(key, mode)
  vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true)
end

local cmp = require'cmp'
local cmp = require 'cmp'
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())

cmp.setup({


@@ 20,30 16,34 @@ cmp.setup({
		-- completion = cmp.config.window.bordered(),
		-- documentation = cmp.config.window.bordered(),
	},
	mapping = cmp.mapping.preset.insert({
	mapping = {
		['<C-n>'] = cmp.mapping.select_next_item(),
		['<C-p>'] = cmp.mapping.select_prev_item(),
		['<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 = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
		["<Tab>"] = cmp.mapping(function(fallback)
      if cmp.visible() then
        cmp.select_next_item()
      elseif vim.fn["vsnip#available"](1) == 1 then
        feedkey("<Plug>(vsnip-expand-or-jump)", "")
      else
        fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
      end
    end, { "i", "s" }),

    ["<S-Tab>"] = cmp.mapping(function()
      if cmp.visible() then
        cmp.select_prev_item()
      elseif vim.fn["vsnip#jumpable"](-1) == 1 then
        feedkey("<Plug>(vsnip-jump-prev)", "")
      end
    end, { "i", "s" }),
	}),
			-- This little snippet will confirm with tab, and if no entry is selected,
			-- will confirm the first item. Use C-N and C-P to change selected.
			if cmp.visible() then
				local entry = cmp.get_selected_entry()
				if not entry then
					cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
				else
					cmp.confirm()
				end
			else
				fallback()
			end
		end, { "i", "s" }),

		["<S-Tab>"] = cmp.mapping(function(fallback)
			if cmp.visible() then
				cmp.select_prev_item()
			else
				fallback()
			end
		end, { "i", "s" }),
	},
	sources = cmp.config.sources({
		{ name = 'nvim_lsp' },
		{ name = 'vsnip' }, -- For vsnip users.


@@ 76,11 76,11 @@ cmp.setup.cmdline(':', {

-- LSP
local nvim_lsp = require("lspconfig")
local on_attach = function(client, bufnr)
local on_attach = function(_, bufnr)
	local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end

	-- Mappings.
	local opts = { noremap=true, silent=true }
	local opts = { noremap = true, silent = true }

	buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
	buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)


@@ 116,6 116,18 @@ nvim_lsp.cssls.setup {
	capabilities = capabilities
}

nvim_lsp.sumneko_lua.setup {
	on_attach = on_attach,
	capabilities = capabilities,
	settings = {
		Lua = {
			diagnostics = {
				globals = { 'vim' }
			}
		}
	}
}

nvim_lsp.tsserver.setup({
	capabilities = capabilities,
	on_attach = function(client, bufnr)


@@ 159,7 171,7 @@ local jdtlsConfig = {
		'-data', workspace_dir,
	},

	root_dir = require('jdtls.setup').find_root({'.git', 'mvnw', 'gradlew'}),
	root_dir = require('jdtls.setup').find_root({ '.git', 'mvnw', 'gradlew' }),

	-- Here you can configure eclipse.jdt.ls specific settings
	-- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request


@@ 186,8 198,8 @@ local jdtlsConfig = {
-- This starts a new client & server,
-- or attaches to an existing client & server depending on the `root_dir`.
vim.api.nvim_create_autocmd(
  "FileType",
  { pattern = "java" , callback = function() require('jdtls').start_or_attach(jdtlsConfig) end }
	"FileType",
	{ pattern = "java", callback = function() require('jdtls').start_or_attach(jdtlsConfig) end }
)

local null_ls = require("null-ls")


@@ 195,7 207,7 @@ null_ls.setup({
	sources = {
		null_ls.builtins.diagnostics.shellcheck,
		null_ls.builtins.formatting.shfmt,
		null_ls.builtins.formatting.prettier.with({extra_args = { "--use-tabs", "--no-semi" }}),
		null_ls.builtins.formatting.prettier.with({ extra_args = { "--use-tabs", "--no-semi" } }),
	},
	on_attach = on_attach,
	capabilities = capabilities

R neovim/.config/nvim/lua/plugins/theme.lua => neovim/.config/nvim/lua/plugins/theme.dark +1 -1
@@ 49,7 49,7 @@ require('lualine').setup {
	},
	sections = {
		lualine_a = {'mode'},
		lualine_b = {'filename'},
		lualine_b = {'filename' path = 1},
		lualine_c = {{'b:gitsigns_head', icon = ''}},
		lualine_x = {getWords},
		lualine_y = {'diagnostics', 'filetype'},

A neovim/.config/nvim/lua/plugins/theme.light => neovim/.config/nvim/lua/plugins/theme.light +50 -0
@@ 0,0 1,50 @@
local left = require('left')
left.setup()
local left_theme = left.lualine()

local function lineCount()
	local total = vim.api.nvim_buf_line_count(0)
	return '%l' .. '/' .. total
end

local wcFiletypes = { 'md', 'markdown', 'txt', 'wiki' }
local function getWords()
	for _, v in pairs(wcFiletypes) do
		if v == vim.bo.filetype then
			if vim.fn.wordcount().visual_words == 1 then
				return tostring(vim.fn.wordcount().visual_words) .. " word"
			elseif not (vim.fn.wordcount().visual_words == nil) then
				return tostring(vim.fn.wordcount().visual_words) .. " words"
			else
				return tostring(vim.fn.wordcount().words) .. " words"
			end
		end
	end
	return ""
end

-- NOTE: Load colorscheme before lualine
require('lualine').setup {
	options = {
		theme = left_theme,
		section_separators = { left = '', right = '' },
		component_separators = { left = '', right = '' },
		globalstatus = true,
	},
	sections = {
		lualine_a = { 'mode' },
		lualine_b = { { 'filename', path = 1 } },
		lualine_c = { { 'b:gitsigns_head', icon = '' } },
		lualine_x = { getWords },
		lualine_y = { 'diagnostics', 'filetype' },
		lualine_z = { lineCount }
	},
	inactive_sections = {
		lualine_a = {},
		lualine_b = {},
		lualine_c = { 'filename' },
		lualine_x = { 'location' },
		lualine_y = {},
		lualine_z = {}
	},
}

A neovim/.config/nvim/lua/plugins/theme.lua => neovim/.config/nvim/lua/plugins/theme.lua +1 -0
@@ 0,0 1,1 @@
./theme.light
\ No newline at end of file

M neovim/.config/nvim/lua/plugins/treesitter.lua => neovim/.config/nvim/lua/plugins/treesitter.lua +20 -14
@@ 1,42 1,48 @@
require'nvim-treesitter.configs'.setup{
require 'nvim-treesitter.configs'.setup {
	highlight = {
		enable = true,
	},
	textobjects = {
		select = {
			enable = true,
			disable = {"go"},
			disable = { "go" },

			-- Automatically jump forward to textobj, similar to targets.vim
			lookahead = true,

			keymaps = {
				-- You can use the capture groups defined in textobjects.scm
				["af"] = "@function.outer",
				["if"] = "@function.inner",
				["ac"] = "@class.outer",
				["ic"] = "@class.inner",
				["aF"] = "@class.outer",
				["iF"] = "@class.inner",
				["ac"] = "@comment.outer",
				["ic"] = "@comment.outer",
				-- markdown
				["il"] = "@list_item.inner",
				["al"] = "@list_item.outer",
				["iC"] = "@code_block.inner", -- Doesn't apply to wiki.vim
				["aC"] = "@code_block.outer", -- But wiki-ft has this too!
			},
		},
		move = {
			enable = true,
			disable = {"go"},
			disable = { "go" },
			set_jumps = true, -- whether to set jumps in the jumplist
			goto_next_start = {
				["]m"] = "@function.outer",
				["]]"] = "@class.outer",
				["]]"] = "@function.outer",
				["]m"] = "@class.outer",
			},
			goto_next_end = {
				["]M"] = "@function.outer",
				["]["] = "@class.outer",
				["]["] = "@function.outer",
				["]M"] = "@class.outer",
			},
			goto_previous_start = {
				["[m"] = "@function.outer",
				["[["] = "@class.outer",
				["[["] = "@function.outer",
				["[m"] = "@class.outer",
			},
			goto_previous_end = {
				["[M"] = "@function.outer",
				["[]"] = "@class.outer",
				["[]"] = "@function.outer",
				["[M"] = "@class.outer",
			},
		},
	},

M neovim/.config/nvim/lua/settings.lua => neovim/.config/nvim/lua/settings.lua +11 -9
@@ 1,6 1,5 @@
local o = vim.o
local g = vim.g
local cmd = vim.cmd
local autocmd = vim.api.nvim_create_autocmd

-- EXPERIMENTAL: Use filetype.lua instead of filetype.vim


@@ 22,6 21,9 @@ o.background = "dark"
g.loaded_netrwPlugin = 1
g.loaded_netrw = 1

-- Use matchup instead of matchit
g.loaded_matchit = 1

-- Enable persistent undo
o.undofile = true



@@ 29,7 31,7 @@ o.undofile = true
o.writebackup = false

-- Traverse lines with arrow keys
o.whichwrap = "b,s,<,>,[,]"
vim.o.whichwrap = "b,s,<,>,[,]"

-- Indentation settings for using hard tabs for indent
o.softtabstop = 4


@@ 52,29 54,29 @@ o.clipboard = "unnamed" -- Set the default register to * so I can have a shared 
o.signcolumn = "yes" -- Always use signcolumn
o.diffopt = "filler,internal,algorithm:histogram,indent-heuristic" -- Enable nvim diffing
o.updatetime = 100 -- Faster responce time
o.confirm = true-- Show a dialog to confirm changes instead of failure
o.confirm = true -- Show a dialog to confirm changes instead of failure
o.mouse = "a" -- Enable use of the mouse for all modes
o.foldlevelstart = 99 -- Open all folds by default
o.breakindent = true -- Multiline indenting

-- Disable line ending diagnotic messages
vim.diagnostic.config({
  virtual_text = false,
	virtual_text = false,
})

-- Restore cursor position
autocmd('BufReadPost', {
  pattern = '*',
  callback = function()
    vim.fn.setpos(".", vim.fn.getpos("'\""))
  end,
	pattern = '*',
	callback = function()
		vim.fn.setpos(".", vim.fn.getpos("'\""))
	end,
})

-- Highlight on yank
autocmd('TextYankPost', {
	pattern = '*',
	callback = function()
		vim.highlight.on_yank {higroup="IncSearch", timeout=350}
		vim.highlight.on_yank { higroup = "IncSearch", timeout = 350 }
	end,
})


A neovim/.config/nvim/queries/markdown/textobjects.scm => neovim/.config/nvim/queries/markdown/textobjects.scm +7 -0
@@ 0,0 1,7 @@
(list_item
    (paragraph)@list_item.inner
)@list_item.outer

(fenced_code_block
    (code_fence_content)@code_block.inner
)@code_block.outer

A neovim/.config/nvim/spell/en.utf-8.add => neovim/.config/nvim/spell/en.utf-8.add +2 -0
@@ 0,0 1,2 @@
A5
macrocarpa

A neovim/.config/nvim/spell/en.utf-8.add.spl => neovim/.config/nvim/spell/en.utf-8.add.spl +0 -0