Compare commits
10 commits
be24b8546f
...
f08e1712cf
Author | SHA1 | Date | |
---|---|---|---|
f08e1712cf | |||
7fdb7c8be3 | |||
a874a985f3 | |||
e12e46a089 | |||
e366f12b56 | |||
4000cea465 | |||
8e94f1c836 | |||
78c1fd2ca5 | |||
5bf3ffc167 | |||
31c6db495b |
9 changed files with 225 additions and 77 deletions
|
@ -57,13 +57,13 @@ esac
|
||||||
if [ -n "$validate" ]; then
|
if [ -n "$validate" ]; then
|
||||||
/bin/echo -e "\x1b[33mValidating commit\x1b[0m"
|
/bin/echo -e "\x1b[33mValidating commit\x1b[0m"
|
||||||
/bin/echo -e "\x1b[2mλ $validate\x1b[0m"
|
/bin/echo -e "\x1b[2mλ $validate\x1b[0m"
|
||||||
# if sh -c "$validate"
|
if sh -c "$validate"
|
||||||
# then
|
then
|
||||||
# /bin/echo -e "\x1b[32mValidation Passed!\x1b[0m"
|
/bin/echo -e "\x1b[32mValidation Passed!\x1b[0m"
|
||||||
# else
|
else
|
||||||
# error=1
|
error=1
|
||||||
# /bin/echo -e "\x1b[1;31mValidation Failed!\x1b[0m"
|
/bin/echo -e "\x1b[1;31mValidation Failed!\x1b[0m"
|
||||||
# fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm .git
|
rm .git
|
||||||
|
|
61
vim/lua/matcha.lua
Normal file
61
vim/lua/matcha.lua
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
local function nextcol(state)
|
||||||
|
local from, to = state.str:find(state.pattern, state.last)
|
||||||
|
if from then
|
||||||
|
state.last = to+1
|
||||||
|
return from, to
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function colmatch(str, pattern)
|
||||||
|
return nextcol, {str=str,pattern=pattern,last=0}
|
||||||
|
end
|
||||||
|
|
||||||
|
local function findLocations(args)
|
||||||
|
local files = vim.fs.find(function(file)
|
||||||
|
if #args>1 then
|
||||||
|
for _, pattern in ipairs(args), args, 1 do
|
||||||
|
if vim.fs.basename(file):find(pattern) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end, {
|
||||||
|
limit=math.huge;
|
||||||
|
type="file";
|
||||||
|
})
|
||||||
|
|
||||||
|
local locations = {}
|
||||||
|
|
||||||
|
for _, file in ipairs(files) do
|
||||||
|
local lnum = 0
|
||||||
|
for line in io.lines(file) do
|
||||||
|
lnum = lnum + 1
|
||||||
|
for from, to in colmatch(line, args[1]) do
|
||||||
|
table.insert(locations, {
|
||||||
|
filename = file;
|
||||||
|
lnum = lnum;
|
||||||
|
col = from;
|
||||||
|
end_col = to;
|
||||||
|
text = line:sub(from, to)
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return locations
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("Matcha", function(params)
|
||||||
|
vim.fn.setqflist(findLocations(params.fargs))
|
||||||
|
vim.cmd("copen")
|
||||||
|
vim.cmd("crewind")
|
||||||
|
end, {nargs="+"})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("MatchaLocal", function(params)
|
||||||
|
vim.fn.setloclist(0, findLocations(params.farts))
|
||||||
|
vim.cmd("lopen")
|
||||||
|
vim.cmd("lrewind")
|
||||||
|
end, {nargs="+"})
|
|
@ -28,18 +28,27 @@ use {
|
||||||
end
|
end
|
||||||
};
|
};
|
||||||
{
|
{
|
||||||
"hedyhli/outline.nvim",
|
"hedyhli/outline.nvim", config = require 'pack.setup.outline';
|
||||||
config = function()
|
|
||||||
vim.keymap.set("n", "<leader>o", "<cmd>OutlineOpen<CR><cmd>OutlineFocus<CR>", { desc = "Toggle Outline" })
|
|
||||||
require("outline").setup()
|
|
||||||
end
|
|
||||||
};
|
};
|
||||||
{ 'jinh0/eyeliner.nvim', config = function()
|
{ 'jinh0/eyeliner.nvim', config = function()
|
||||||
require('eyeliner').setup {
|
require('eyeliner').setup {
|
||||||
highlight_on_key = true;
|
highlight_on_key = true;
|
||||||
dim = true;
|
dim = true;
|
||||||
}
|
}
|
||||||
end};
|
end
|
||||||
|
};
|
||||||
|
{
|
||||||
|
'chentoast/marks.nvim';
|
||||||
|
config = function()
|
||||||
|
require'marks'.setup {
|
||||||
|
sign_priority = { lower=10, upper=15, builtin=8, bookmark=20 },
|
||||||
|
excluded_filetypes = {},
|
||||||
|
excluded_buftypes = {},
|
||||||
|
mappings = {}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
};
|
||||||
|
'folke/twilight.nvim';
|
||||||
'leafo/moonscript-vim';
|
'leafo/moonscript-vim';
|
||||||
'neovim/nvim-lspconfig';
|
'neovim/nvim-lspconfig';
|
||||||
'pigpigyyy/Yuescript-vim';
|
'pigpigyyy/Yuescript-vim';
|
||||||
|
@ -49,11 +58,12 @@ use {
|
||||||
'AlessandroYorba/Alduin';
|
'AlessandroYorba/Alduin';
|
||||||
'AlessandroYorba/Sierra';
|
'AlessandroYorba/Sierra';
|
||||||
'DarkWiiPlayer/papercolor-theme';
|
'DarkWiiPlayer/papercolor-theme';
|
||||||
|
'EdenEast/nightfox.nvim';
|
||||||
'axvr/photon.vim';
|
'axvr/photon.vim';
|
||||||
'ayu-theme/ayu-vim';
|
'ayu-theme/ayu-vim';
|
||||||
'dracula/vim';
|
'dracula/vim';
|
||||||
'jaredgorski/fogbell.vim';
|
'jaredgorski/fogbell.vim';
|
||||||
'kvrohit/mellow';
|
'kvrohit/mellow.nvim';
|
||||||
'optionalg/Arcadia';
|
'optionalg/Arcadia';
|
||||||
'rakr/vim-two-firewatch';
|
'rakr/vim-two-firewatch';
|
||||||
'rebelot/kanagawa.nvim';
|
'rebelot/kanagawa.nvim';
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
return function()
|
return function()
|
||||||
require('neo-tree').setup {
|
require('neo-tree').setup {
|
||||||
|
window = {
|
||||||
|
width = 25;
|
||||||
|
};
|
||||||
filesystem = {
|
filesystem = {
|
||||||
use_libuv_file_watcher = true;
|
use_libuv_file_watcher = true;
|
||||||
};
|
};
|
||||||
|
|
9
vim/lua/pack/setup/outline.lua
Normal file
9
vim/lua/pack/setup/outline.lua
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
return function()
|
||||||
|
vim.keymap.set("n", "<leader>o", "<cmd>OutlineOpen<CR><cmd>OutlineFocus<CR>", { desc = "Toggle Outline" })
|
||||||
|
require("outline").setup {
|
||||||
|
outline_window = {
|
||||||
|
width = 20;
|
||||||
|
relative_width = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
end
|
116
vim/lua/snip.lua
Normal file
116
vim/lua/snip.lua
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
local snip = {
|
||||||
|
snippets = {};
|
||||||
|
ft = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
function snip:new(name, filetype, snippet)
|
||||||
|
if snippet==nil then
|
||||||
|
return self:new(name, nil, filetype)
|
||||||
|
end
|
||||||
|
|
||||||
|
if type(snippet) ~= "table" then
|
||||||
|
snippet = { snippet }
|
||||||
|
end
|
||||||
|
|
||||||
|
if filetype then
|
||||||
|
if not self.ft[filetype] then
|
||||||
|
self.ft[filetype] = {snippets = {}}
|
||||||
|
end
|
||||||
|
self.ft[filetype].snippets[name] = snippet
|
||||||
|
else
|
||||||
|
self.snippets[name] = snippet
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function snip:each(filetype)
|
||||||
|
return coroutine.wrap(function()
|
||||||
|
for name, snippet in pairs(snip.snippets) do
|
||||||
|
coroutine.yield(name, snippet)
|
||||||
|
end
|
||||||
|
if filetype and snip.ft[filetype] then
|
||||||
|
for name, snippet in pairs(snip.ft[filetype].snippets) do
|
||||||
|
coroutine.yield(name, snippet)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function snip:get(name, filetype)
|
||||||
|
local snippet = snip.snippets[name]
|
||||||
|
if filetype and snip.ft[filetype] then
|
||||||
|
snippet = snip.ft[filetype].snippets[name] or snippet
|
||||||
|
end
|
||||||
|
if snippet then
|
||||||
|
return snippet
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function complete(lead)
|
||||||
|
local names = {}
|
||||||
|
local known = {}
|
||||||
|
for name, snippet in snip:each(vim.o.filetype) do
|
||||||
|
if (name:find("^"..lead)) then
|
||||||
|
if type(snippet)=="string"
|
||||||
|
or snippet.condition == nil
|
||||||
|
or snippet.condition() then
|
||||||
|
if not known[name] then
|
||||||
|
table.insert(names, name)
|
||||||
|
end
|
||||||
|
known[name] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
table.sort(names)
|
||||||
|
return names
|
||||||
|
end
|
||||||
|
|
||||||
|
local function process_item(item, lines)
|
||||||
|
if type(item) == "string" then
|
||||||
|
for _, line in ipairs(vim.fn.split(item, "\n")) do
|
||||||
|
table.insert(lines, line)
|
||||||
|
end
|
||||||
|
elseif type(item) == "function" then
|
||||||
|
process_item(item(), lines)
|
||||||
|
else
|
||||||
|
error("Unable to handle snippet item of type "..type(item))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function snip:insert(name)
|
||||||
|
local snippet = self:get(name, vim.o.filetype)
|
||||||
|
|
||||||
|
if not snippet then
|
||||||
|
print "No snippet with that name"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local mode = snippet.mode or "l"
|
||||||
|
|
||||||
|
local lines = {}
|
||||||
|
|
||||||
|
for _, item in ipairs(snippet) do
|
||||||
|
process_item(item, lines)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_put(lines, mode, true, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("Snip", function(params)
|
||||||
|
snip:insert(params.args)
|
||||||
|
end, {nargs=1, complete=complete})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("Snips", function()
|
||||||
|
local list = {}
|
||||||
|
for name in snip:each(vim.o.filetype) do
|
||||||
|
table.insert(list, name)
|
||||||
|
end
|
||||||
|
table.sort(list)
|
||||||
|
print(table.concat(list, ", "))
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("SnipReload", function()
|
||||||
|
package.loaded.snip = nil
|
||||||
|
require "snip"
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
return snip
|
1
vim/plugin/matcha.lua
Normal file
1
vim/plugin/matcha.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require 'matcha'
|
|
@ -118,14 +118,6 @@ abbrev eshrug ¯\_(ツ)_/¯
|
||||||
|
|
||||||
" === GENERAL UTILITIES ===
|
" === GENERAL UTILITIES ===
|
||||||
|
|
||||||
" --- TEXT SNIPPETS ---
|
|
||||||
|
|
||||||
" -- Global --
|
|
||||||
|
|
||||||
if !exists('s:snippets')
|
|
||||||
let s:snippets = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
" Runs a sequence of commands asynchronously
|
" Runs a sequence of commands asynchronously
|
||||||
function! Async(array, ...)
|
function! Async(array, ...)
|
||||||
if len(a:array) > 0
|
if len(a:array) > 0
|
||||||
|
@ -137,57 +129,6 @@ function! Async(array, ...)
|
||||||
end
|
end
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
function! s:make_snippet(name, lines)
|
|
||||||
let s:snippets[a:name] = a:lines
|
|
||||||
endfun
|
|
||||||
|
|
||||||
function! s:make_snippet_range(name, line_start, line_end)
|
|
||||||
call s:make_snippet(a:name, getline(a:line_start, a:line_end))
|
|
||||||
endfun
|
|
||||||
|
|
||||||
function! s:insert_snippet(name)
|
|
||||||
for line in get(s:snippets, a:name, [])
|
|
||||||
put =line
|
|
||||||
endfor
|
|
||||||
endfun
|
|
||||||
|
|
||||||
function! MkSnip(name, str)
|
|
||||||
call s:make_snippet(a:name, split(a:str, '\n'))
|
|
||||||
endfun
|
|
||||||
|
|
||||||
command! -nargs=1 Snippet call s:insert_snippet(<f-args>)
|
|
||||||
command! -range -nargs=1 MkSnippet call s:make_snippet_range(<f-args>, <line1>, <line2>)
|
|
||||||
|
|
||||||
" -- Filetype --
|
|
||||||
|
|
||||||
if !exists('s:ft_snippets')
|
|
||||||
let s:ft_snippets = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
function! s:make_ft_snippet(ft, name, lines)
|
|
||||||
if !get(s:ft_snippets, a:ft, 0)
|
|
||||||
let s:ft_snippets[a:ft] = {}
|
|
||||||
end
|
|
||||||
let s:ft_snippets[a:ft][a:name] = a:lines
|
|
||||||
endfun
|
|
||||||
|
|
||||||
function! s:make_ft_snippet_range(ft, name, line_start, line_end)
|
|
||||||
call s:make_ft_snippet(a:ft, a:name, getline(a:line_start, a:line_end))
|
|
||||||
endfun
|
|
||||||
|
|
||||||
function! s:insert_ft_snippet(ft, name)
|
|
||||||
for line in get(get(s:ft_snippets, a:ft, {}), a:name, [])
|
|
||||||
put =line
|
|
||||||
endfor
|
|
||||||
endfun
|
|
||||||
|
|
||||||
function! MkFTSnip(ft, name, str)
|
|
||||||
call s:make_ft_snippet(a:ft, a:name, split(a:str, '\n'))
|
|
||||||
endfun
|
|
||||||
|
|
||||||
command! -nargs=1 FTSnippet call s:insert_ft_snippet(&filetype, <f-args>)
|
|
||||||
command! -range -nargs=1 FTMkSnippet call s:make_ft_snippet_range(&filetype, <f-args>, <line1>, <line2>)
|
|
||||||
|
|
||||||
function! RangeChooser()
|
function! RangeChooser()
|
||||||
let temp = tempname()
|
let temp = tempname()
|
||||||
|
|
||||||
|
|
7
vim/plugin/snip.lua
Normal file
7
vim/plugin/snip.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
require "snip"
|
||||||
|
for _, path in ipairs(vim.api.nvim__get_runtime({"snip/snippets.lua"}, true, {})) do
|
||||||
|
local code = io.open(path):read("*a")
|
||||||
|
if code then
|
||||||
|
dofile(path)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue