-
-
Save nucleogenesis/f820ba5cb99f0cf8d09dd71422cbd142 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set encoding=utf-8 | |
set hidden | |
set nocompatible " be iMproved, required | |
set nobackup | |
set nowritebackup | |
set cmdheight=2 | |
set updatetime=300 | |
set shortmess+=c | |
set statusline^=%{coc#status()} | |
let g:mapleader = "," | |
if has("patch-8.1.1564") | |
" Recently vim can merge signcolumn and number column into one | |
set signcolumn=number | |
else | |
set signcolumn=yes | |
endif | |
" Always show the signcolumn, otherwise it would shift the text each time | |
" diagnostics appear/become resolved. | |
if has("patch-8.1.1564") | |
" Recently vim can merge signcolumn and number column into one | |
set signcolumn=number | |
else | |
set signcolumn=yes | |
endif | |
" Use `[g` and `]g` to navigate diagnostics | |
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. | |
nmap <silent> [g <Plug>(coc-diagnostic-prev) | |
nmap <silent> ]g <Plug>(coc-diagnostic-next) | |
" GoTo code navigation. | |
nmap <silent> gd <Plug>(coc-definition) | |
nmap <silent> gy <Plug>(coc-type-definition) | |
nmap <silent> gi <Plug>(coc-implementation) | |
nmap <silent> gr <Plug>(coc-references) | |
nmap <silent><nowait> <space>d :call CocAction('jumpDefinition', v:false)<CR> | |
" Symbol renaming. | |
nmap <leader>rn <Plug>(coc-rename) | |
" Use tab for trigger completion with characters ahead and navigate. | |
" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by | |
" other plugin before putting this into your config. | |
"inoremap <silent><expr> <CR> | |
"\ pumvisible() ? "\<C-n>" : | |
"\ <SID>check_back_space() ? "\<TAB>" : | |
"\ coc#refresh() | |
"inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" | |
" Use K to show documentation in preview window. | |
nnoremap <silent> K :call <SID>show_documentation()<CR> | |
function! s:show_documentation() | |
if (index(['vim','help'], &filetype) >= 0) | |
execute 'h '.expand('<cword>') | |
elseif (coc#rpc#ready()) | |
call CocActionAsync('doHover') | |
else | |
execute '!' . &keywordprg . " " . expand('<cword>') | |
endif | |
endfunction | |
filetype off " required | |
" Vundle | |
" :PluginList - lists configured plugins | |
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate | |
" :PluginSearch foo - searches for foo; append `!` to refresh local cache | |
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal | |
" set the runtime path to include Vundle and initialize | |
"set rtp+=~/.vim/bundle/Vundle.vim | |
"set rtp+=~/.vim/bundle/ctrlp.vim | |
" | |
call plug#begin(stdpath('data') . '/plugged') | |
" let Vundle manage Vundle, required | |
Plug 'VundleVim/Vundle.vim' | |
Plug 'tpope/vim-fugitive' | |
" Another PR review thing (it's rad) | |
Plug 'pwntester/octo.nvim' | |
Plug 'sindrets/diffview.nvim' | |
" PR Review in Vim (allegedly?) | |
"Plug 'AGhost-7/critiq.vim' | |
Plug 'tpope/vim-unimpaired' | |
Plug 'sheerun/vim-polyglot' | |
Plug 'posva/vim-vue' | |
Plug 'scrooloose/nerdtree' | |
"Plug 'Xuyuanp/nerdtree-git-plugin' | |
"Plug 'ctrlpvim/ctrlp.vim' | |
"Plugin 'ajh17/vimcompletesme' | |
Plug 'neoclide/coc.nvim', { 'branch': 'release' } | |
Plug 'flazz/vim-colorschemes' | |
Plug 'ddrscott/vim-side-search' | |
Plug 'vlime/vlime', { 'rtp':'vim/' } | |
Plug 'kovisoft/paredit' | |
Plug 'Mofiqul/dracula.nvim' | |
Plug 'hoob3rt/lualine.nvim' | |
Plug 'kyazdani42/nvim-web-devicons' | |
Plug 'vim-test/vim-test' | |
Plug 'tpope/vim-rhubarb' | |
Plug 'Olical/conjure', { 'tag': 'v4.6.0' } | |
Plug 'Olical/aniseed' | |
Plug 'luochen1990/rainbow' | |
Plug 'eliba2/vim-node-inspect' | |
Plug 'github/copilot.vim' | |
Plug 'tpope/vim-dispatch' | |
Plug 'clojure-vim/vim-jack-in' | |
Plug 'radenling/vim-dispatch-neovim' | |
Plug 'nvim-lua/plenary.nvim' | |
Plug 'nvim-lua/popup.nvim' | |
Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'make' } | |
Plug 'nvim-telescope/telescope.nvim' | |
Plug 'nvim-telescope/telescope-media-files.nvim' | |
Plug 'nvim-telescope/telescope-symbols.nvim' | |
Plug 'ThePrimeagen/git-worktree.nvim' | |
Plug 'renerocksai/telekasten.nvim' | |
Plug 'renerocksai/calendar-vim' | |
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } | |
call plug#end() " required | |
filetype plugin indent on " required | |
colorscheme nord | |
" | |
" NVIM Stuff | |
" | |
"rainbow | |
let g:rainbow_active = 1 | |
let g:rainbow_conf = { | |
\ 'separately': { | |
\ 'javascript': { | |
\ 'operators': '_,\|+\|-\|\*\|\*\*\| / \|===\|!==\|==\|!=\| < \|<=\| > \|>=\|:\|%\|&\||_', | |
\ 'parentheses_options': 'containedin=jsxElement fold ', | |
\ 'parentheses': [ | |
\ 'start=/\z((\)/ end=/)/ contains=@jsAll', 'start=/\[/ end=/\]/ contains=@jsAll', | |
\ 'start=/{/ end=/}/ contains=@jsAll containedin=jsTemplateString', | |
\ 'start=_<\z([^ />]*\)>\?_ end=_</\z1>_ end=_/>_ contains=jsxOpenTag,jsxAttrib,jsxExpressionBlock,jsxSpreadOperator,', | |
\ ], | |
\ 'after': [ | |
\ 'syn clear jsParen', 'syn clear jsFuncArgs', 'syn clear jsxExpressionBlock', | |
\ 'syn clear jsParensError', 'syn clear jsParenIfElse', 'syn clear jsDestructuringBlock', | |
\ 'syn clear jsFuncBlock', 'syn clear jsArrowFuncArgs', 'syn clear jsParenSwitch', | |
\ 'syn clear jsBlock', 'syn clear jsObject', 'syn clear jsxTag', 'syn clear jsTemplateExpression', | |
\ 'syn clear jsParenRepeat', 'syn clear jsRepeatBlock' | |
\ ], | |
\ 'contains_prefix': '', | |
\ }, | |
\ } | |
\} | |
" COC | |
let g:coc_disable_startup_warning = 1 | |
let g:coc_node_path = "/home/jacob/.nvm/versions/node/v12.18.4/bin/node" | |
" | |
" Misc Settings | |
" | |
let mapleader = "," | |
set relativenumber | |
" Split Nav | |
nnoremap <C-J> <C-W><C-J> | |
nnoremap <C-K> <C-W><C-K> | |
nnoremap <C-L> <C-W><C-L> | |
nnoremap <C-H> <C-W><C-H> | |
set splitbelow | |
set splitright | |
" git | |
nnoremap <leader>gd :Gdiffsplit<CR> | |
" remove highlighting | |
"nnoremap <Leader>c :noh<CR> | |
" save | |
inoremap <Leader>w <Esc>:w<cr>a | |
nnoremap <Leader>w :w<cr> | |
" | |
" Syntax | |
" | |
syntax on | |
filetype plugin on | |
let g:vue_pre_processors = ['pug', 'scss'] | |
let g:python_highlight_all = 1 | |
set termguicolors | |
set showmatch | |
set ts=2 | |
set sts=2 | |
set sw=2 | |
set autoindent | |
set smartindent | |
set smarttab | |
set expandtab | |
" | |
" Nerd Tree | |
" | |
" Start automatically when given no files to open | |
"autocmd StdinReadPre * let s:std_in=1 | |
"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
let NERDTreeShowHidden=1 | |
nnoremap <Leader>n :NERDTreeToggle<CR> | |
nnoremap <Leader>u :NERDTree %<CR> | |
" | |
" VimCompletesMe | |
" | |
"autocmd FileType vim let b:vcm_tab_complete = 'vim' | |
"let g:vcm_tab_complete=1 | |
" | |
" CTRLP | |
" | |
"let g:ctrlp_show_hidden=1 | |
"let g:ctrlp_custom_ignore = '\v[\/]\.?(tox|git|node_modules|venv)$' | |
"let g:ctrlp_max_files=0 | |
" | |
" Telescope | |
" | |
" Find files using Telescope command-line sugar. | |
nnoremap <leader>ff <cmd>Telescope find_files<cr> | |
nnoremap <leader>fg <cmd>Telescope live_grep<cr> | |
nnoremap <leader>fb <cmd>Telescope buffers<cr> | |
nnoremap <leader>fh <cmd>Telescope help_tags<cr> | |
nnoremap <leader>fu <cmd>Telescope file_browser<cr> | |
" MISC | |
" | |
" GTFO | |
nnoremap <leader>qaq :qa!<cr> | |
" SAVE AND QUIT | |
nnoremap <leader>x :x<cr> | |
inoremap <leader>x <esc>:x<cr> | |
" QUICKSAFE | |
nnoremap <leader>w :w<cr> | |
inoremap <leader>w <esc>:w<cr>i | |
" Worktrees | |
nnoremap <leader>wn <cmd>lua require('telescope').extensions.git_worktree.create_git_worktree()<cr> | |
nnoremap <leader>we <cmd>lua require('telescope').extensions.git_worktree.git_worktrees()<cr> | |
"-- <Enter> - switches to that worktree | |
"-- <c-d> - deletes that worktree | |
"-- <c-f> - toggles forcing of the next deletion | |
" | |
" SideSearch | |
" | |
let g:side_search_prg = 'rg --word-regexp --heading --stats -B 5 -A 5 --line-number' | |
\. " --ignore='node_modules' --ignore='*.swp' --ignore='*.map.js' --ignore='*.min.js' --ignore='*static*'" | |
let g:side_search_splitter = 'vnew' | |
nnoremap <Leader>ss :SideSearch <C-r><C-w><CR> | wincmd p | |
command! -complete=file -nargs=+ SS execute "SideSearch <args>" | |
let g:ackprg = 'rg --vimgrep' | |
" | |
" OCTO | |
" | |
nnoremap <Leader>prl <cmd>Octo pr list<cr> | |
nnoremap <Leader>prr <cmd>Octo review start<cr> | |
nnoremap <Leader>prb <cmd>Octo review resume<cr> | |
nnoremap <Leader>prs <cmd>Octo review submit<cr> | |
""" Customize colors | |
hi Pmenu guibg=gray guifg=white | |
""" COMMON-LISP | |
set runtimepath^=~/.nvim/bundle/vlime/doc | |
"""" VLIME | |
let g:vlime_window_settings = { | |
\ "sldb": { | |
\ "pos": "botright", | |
\ "size": 60, | |
\ "vertical": v:true | |
\} | |
\} | |
" | |
" DiffView | |
" | |
nnoremap <Leader>dv <cmd>DiffViewFileHistory<cr> | |
" | |
" vim-test | |
" | |
let g:test#javascript#runner = 'jest' | |
nmap <silent> <leader>t :TestNearest<CR> | |
nmap <silent> <leader>T :TestFile<CR> | |
"nmap <silent> <leader>a :TestSuite<CR> | |
"nmap <silent> <leader>l :TestLast<CR> | |
"nmap <silent> <leader>g :TestVisit<CR> | |
" | |
" TELEKASTEN | |
nnoremap <leader>zf :lua require('telekasten').find_notes()<CR> | |
nnoremap <leader>zd :lua require('telekasten').find_daily_notes()<CR> | |
nnoremap <leader>zg :lua require('telekasten').search_notes()<CR> | |
nnoremap <leader>zz :lua require('telekasten').follow_link()<CR> | |
nnoremap <leader>zT :lua require('telekasten').goto_today()<CR> | |
nnoremap <leader>zW :lua require('telekasten').goto_thisweek()<CR> | |
nnoremap <leader>zw :lua require('telekasten').find_weekly_notes()<CR> | |
nnoremap <leader>zn :lua require('telekasten').new_note()<CR> | |
nnoremap <leader>zN :lua require('telekasten').new_templated_note()<CR> | |
nnoremap <leader>zy :lua require('telekasten').yank_notelink()<CR> | |
nnoremap <leader>zc :lua require('telekasten').show_calendar()<CR> | |
nnoremap <leader>zC :CalendarT<CR> | |
nnoremap <leader>zi :lua require('telekasten').paste_img_and_link()<CR> | |
nnoremap <leader>zt :lua require('telekasten').toggle_todo()<CR> | |
nnoremap <leader>zb :lua require('telekasten').show_backlinks()<CR> | |
nnoremap <leader>zF :lua require('telekasten').find_friends()<CR> | |
nnoremap <leader>zI :lua require('telekasten').insert_img_link({ i=true })<CR> | |
nnoremap <leader>zp :lua require('telekasten').preview_img()<CR> | |
nnoremap <leader>zm :lua require('telekasten').browse_media()<CR> | |
nnoremap <leader>za :lua require('telekasten').show_tags()<CR> | |
nnoremap <leader># :lua require('telekasten').show_tags()<CR> | |
" on hesitation, bring up the panel | |
nnoremap <leader>z :lua require('telekasten').panel()<CR> | |
" we could define [[ in **insert mode** to call insert link | |
" inoremap [[ <cmd>:lua require('telekasten').insert_link()<CR> | |
" alternatively: leader [ | |
inoremap <leader>[ <cmd>:lua require('telekasten').insert_link({ i=true })<CR> | |
inoremap <leader>zt <cmd>:lua require('telekasten').toggle_todo({ i=true })<CR> | |
inoremap <leader># <cmd>lua require('telekasten').show_tags({i = true})<cr> | |
" | |
" Lua | |
" | |
lua << END | |
-- Status Line setup with colorscheme in place | |
require('lualine').setup({options={theme='dracula-nvim'}, sections={lualine_c={{'filename', path=1}}}}) | |
-- TELESCOPE | |
-- You dont need to set any of these options. These are the default ones. Only | |
-- the loading is important | |
require('telescope').setup { | |
extensions = { | |
fzf = { | |
fuzzy = true, -- false will only do exact matching | |
override_generic_sorter = true, -- override the generic sorter | |
override_file_sorter = true, -- override the file sorter | |
case_mode = "smart_case", -- or "ignore_case" or "respect_case" | |
-- the default case_mode is "smart_case" | |
} | |
} | |
} | |
-- OCTO | |
require('octo').setup({ | |
mappings = { | |
submit_win = { | |
approve_review = "<C-w>" | |
} | |
} | |
}) | |
-- diffview | |
local cb = require'diffview.config'.diffview_callback | |
require'diffview'.setup { | |
diff_binaries = false, -- Show diffs for binaries | |
enhanced_diff_hl = false, -- See ':h diffview-config-enhanced_diff_hl' | |
use_icons = true, -- Requires nvim-web-devicons | |
icons = { -- Only applies when use_icons is true. | |
folder_closed = "", | |
folder_open = "", | |
}, | |
signs = { | |
fold_closed = "", | |
fold_open = "", | |
}, | |
file_panel = { | |
position = "left", -- One of 'left', 'right', 'top', 'bottom' | |
width = 35, -- Only applies when position is 'left' or 'right' | |
height = 10, -- Only applies when position is 'top' or 'bottom' | |
listing_style = "tree", -- One of 'list' or 'tree' | |
tree_options = { -- Only applies when listing_style is 'tree' | |
flatten_dirs = true, -- Flatten dirs that only contain one single dir | |
folder_statuses = "only_folded", -- One of 'never', 'only_folded' or 'always'. | |
}, | |
}, | |
file_history_panel = { | |
position = "bottom", | |
width = 35, | |
height = 16, | |
log_options = { | |
max_count = 256, -- Limit the number of commits | |
follow = false, -- Follow renames (only for single file) | |
all = false, -- Include all refs under 'refs/' including HEAD | |
merges = false, -- List only merge commits | |
no_merges = false, -- List no merge commits | |
reverse = false, -- List commits in reverse order | |
}, | |
}, | |
default_args = { -- Default args prepended to the arg-list for the listed commands | |
DiffviewOpen = {}, | |
DiffviewFileHistory = {}, | |
}, | |
hooks = {}, -- See ':h diffview-config-hooks' | |
key_bindings = { | |
disable_defaults = false, -- Disable the default key bindings | |
-- The `view` bindings are active in the diff buffers, only when the current | |
-- tabpage is a Diffview. | |
view = { | |
["<tab>"] = cb("select_next_entry"), -- Open the diff for the next file | |
["<s-tab>"] = cb("select_prev_entry"), -- Open the diff for the previous file | |
["gf"] = cb("goto_file"), -- Open the file in a new split in previous tabpage | |
["<C-w><C-f>"] = cb("goto_file_split"), -- Open the file in a new split | |
["<C-w>gf"] = cb("goto_file_tab"), -- Open the file in a new tabpage | |
["<leader>e"] = cb("focus_files"), -- Bring focus to the files panel | |
["<leader>b"] = cb("toggle_files"), -- Toggle the files panel. | |
}, | |
file_panel = { | |
["j"] = cb("next_entry"), -- Bring the cursor to the next file entry | |
["<down>"] = cb("next_entry"), | |
["k"] = cb("prev_entry"), -- Bring the cursor to the previous file entry. | |
["<up>"] = cb("prev_entry"), | |
["<cr>"] = cb("select_entry"), -- Open the diff for the selected entry. | |
["o"] = cb("select_entry"), | |
["<2-LeftMouse>"] = cb("select_entry"), | |
["-"] = cb("toggle_stage_entry"), -- Stage / unstage the selected entry. | |
["S"] = cb("stage_all"), -- Stage all entries. | |
["U"] = cb("unstage_all"), -- Unstage all entries. | |
["X"] = cb("restore_entry"), -- Restore entry to the state on the left side. | |
["R"] = cb("refresh_files"), -- Update stats and entries in the file list. | |
["<tab>"] = cb("select_next_entry"), | |
["<s-tab>"] = cb("select_prev_entry"), | |
["gf"] = cb("goto_file"), | |
["<C-w><C-f>"] = cb("goto_file_split"), | |
["<C-w>gf"] = cb("goto_file_tab"), | |
["i"] = cb("listing_style"), -- Toggle between 'list' and 'tree' views | |
["f"] = cb("toggle_flatten_dirs"), -- Flatten empty subdirectories in tree listing style. | |
["<leader>e"] = cb("focus_files"), | |
["<leader>b"] = cb("toggle_files"), | |
}, | |
file_history_panel = { | |
["g!"] = cb("options"), -- Open the option panel | |
["<C-A-d>"] = cb("open_in_diffview"), -- Open the entry under the cursor in a diffview | |
["y"] = cb("copy_hash"), -- Copy the commit hash of the entry under the cursor | |
["zR"] = cb("open_all_folds"), | |
["zM"] = cb("close_all_folds"), | |
["j"] = cb("next_entry"), | |
["<down>"] = cb("next_entry"), | |
["k"] = cb("prev_entry"), | |
["<up>"] = cb("prev_entry"), | |
["<cr>"] = cb("select_entry"), | |
["o"] = cb("select_entry"), | |
["<2-LeftMouse>"] = cb("select_entry"), | |
["<tab>"] = cb("select_next_entry"), | |
["<s-tab>"] = cb("select_prev_entry"), | |
["gf"] = cb("goto_file"), | |
["<C-w><C-f>"] = cb("goto_file_split"), | |
["<C-w>gf"] = cb("goto_file_tab"), | |
["<leader>e"] = cb("focus_files"), | |
["<leader>b"] = cb("toggle_files"), | |
}, | |
option_panel = { | |
["<tab>"] = cb("select"), | |
["q"] = cb("close"), | |
}, | |
}, | |
} | |
-- To get fzf loaded and working with telescope, you need to call | |
-- load_extension, somewhere after setup function: | |
require('telescope').load_extension('fzf') | |
require("telescope").load_extension("git_worktree") | |
require("telescope").load_extension("media_files") | |
-- TELEKASTEN | |
local home = vim.fn.expand("~/zettelkasten") | |
require('telekasten').setup({ | |
home = home, | |
-- if true, telekasten will be enabled when opening a note within the configured home | |
take_over_my_home = true, | |
-- auto-set telekasten filetype: if false, the telekasten filetype will not be used | |
-- and thus the telekasten syntax will not be loaded either | |
auto_set_filetype = true, | |
dailies = home .. '/' .. 'daily', | |
weeklies = home .. '/' .. 'weekly', | |
templates = home .. '/' .. 'templates', | |
-- image subdir for pasting | |
-- subdir name | |
-- or nil if pasted images shouldn't go into a special subdir | |
image_subdir = "img", | |
-- markdown file extension | |
extension = ".md", | |
-- following a link to a non-existing note will create it | |
follow_creates_nonexisting = true, | |
dailies_create_nonexisting = true, | |
weeklies_create_nonexisting = true, | |
-- template for new notes (new_note, follow_link) | |
-- set to `nil` or do not specify if you do not want a template | |
template_new_note = home .. '/' .. 'templates/new_note.md', | |
-- template for newly created daily notes (goto_today) | |
-- set to `nil` or do not specify if you do not want a template | |
template_new_daily = home .. '/' .. 'templates/daily.md', | |
-- template for newly created weekly notes (goto_thisweek) | |
-- set to `nil` or do not specify if you do not want a template | |
template_new_weekly= home .. '/' .. 'templates/weekly.md', | |
-- image link style | |
-- wiki: ![[image name]] | |
-- markdown: ![](image_subdir/xxxxx.png) | |
image_link_style = "markdown", | |
-- integrate with calendar-vim | |
plug_into_calendar = true, | |
calendar_opts = { | |
-- calendar week display mode: 1 .. 'WK01', 2 .. 'WK 1', 3 .. 'KW01', 4 .. 'KW 1', 5 .. '1' | |
weeknm = 4, | |
-- use monday as first day of week: 1 .. true, 0 .. false | |
calendar_monday = 1, | |
-- calendar mark: where to put mark for marked days: 'left', 'right', 'left-fit' | |
calendar_mark = 'left-fit', | |
}, | |
-- telescope actions behavior | |
close_after_yanking = false, | |
insert_after_inserting = true, | |
-- tag notation: '#tag', ':tag:', 'yaml-bare' | |
tag_notation = "#tag", | |
-- command palette theme: dropdown (window) or ivy (bottom panel) | |
command_palette_theme = "ivy", | |
-- tag list theme: | |
-- get_cursor: small tag list at cursor; ivy and dropdown like above | |
show_tags_theme = "ivy", | |
-- when linking to a note in subdir/, create a [[subdir/title]] link | |
-- instead of a [[title only]] link | |
subdirs_in_links = true, | |
-- template_handling | |
-- What to do when creating a new note via `new_note()` or `follow_link()` | |
-- to a non-existing note | |
-- - prefer_new_note: use `new_note` template | |
-- - smart: if day or week is detected in title, use daily / weekly templates (default) | |
-- - always_ask: always ask before creating a note | |
template_handling = "smart", | |
-- path handling: | |
-- this applies to: | |
-- - new_note() | |
-- - new_templated_note() | |
-- - follow_link() to non-existing note | |
-- | |
-- it does NOT apply to: | |
-- - goto_today() | |
-- - goto_thisweek() | |
-- | |
-- Valid options: | |
-- - smart: put daily-looking notes in daily, weekly-looking ones in weekly, | |
-- all other ones in home, except for notes/with/subdirs/in/title. | |
-- (default) | |
-- | |
-- - prefer_home: put all notes in home except for goto_today(), goto_thisweek() | |
-- except for notes with subdirs/in/title. | |
-- | |
-- - same_as_current: put all new notes in the dir of the current note if | |
-- present or else in home | |
-- except for notes/with/subdirs/in/title. | |
new_note_location = "smart", | |
}) | |
local Worktree = require("git-worktree") | |
-- op = Operations.Switch, Operations.Create, Operations.Delete | |
-- metadata = table of useful values (structure dependent on op) | |
-- Switch | |
-- path = path you switched to | |
-- prev_path = previous worktree path | |
-- Create | |
-- path = path where worktree created | |
-- branch = branch name | |
-- upstream = upstream remote name | |
-- Delete | |
-- path = path where worktree deleted | |
Worktree.on_tree_change(function(op, metadata) | |
if op == Worktree.Operations.Create then | |
-- cd to new dir | |
-- setup venv (do not switch to it - the next hook maybe will?) | |
local venv_handle = io.popen("python -m venv " .. metadata.path .. "venv") | |
print(venv_handle:read("*a")) | |
venv_handle:close() | |
print("python -m venv " .. metadata.path .. "/venv") | |
end | |
if op == Worktree.Operations.Switch then | |
-- deactivate prev_path venv | |
-- activate path venv | |
print("Switched from " .. metadata.prev_path .. " to " .. metadata.path) | |
end | |
end) | |
END | |
" | |
" for gruvbox | |
hi tklink ctermfg=72 guifg=#689d6a cterm=bold,underline gui=bold,underline | |
hi tkBrackets ctermfg=gray guifg=gray | |
" real yellow | |
hi tkHighlight ctermbg=yellow ctermfg=darkred cterm=bold guibg=yellow guifg=darkred gui=bold | |
" gruvbox | |
"hi tkHighlight ctermbg=214 ctermfg=124 cterm=bold guibg=#fabd2f guifg=#9d0006 gui=bold | |
hi link CalNavi CalRuler | |
hi tkTagSep ctermfg=gray guifg=gray | |
hi tkTag ctermfg=175 guifg=#d3869B | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment