Compare commits

..

3 Commits

Author SHA1 Message Date
c7d39fe79c Close vim if only non-file windows are open 2025-04-23 22:38:44 +01:00
bf83c416c5 Typo 2025-04-22 16:55:58 +01:00
0940219a08 Only use Wakatime on mac 2025-04-15 21:03:11 +01:00
3 changed files with 47 additions and 217 deletions

201
init.lua
View File

@@ -12,205 +12,8 @@ require 'keymap'
require 'autocmd' require 'autocmd'
require 'lazy_init' require 'lazy_init'
-- " Run the Code Lens action on the current line require('helpers').edit_cf('v', '/init.lua')
-- nmap <leader>cl <Plug>(coc-codelens-action)
--
-- " Map function and class text objects
-- " NOTE: Requires 'textDocument.documentSymbol' support from the language server
-- xmap if <Plug>(coc-funcobj-i)
-- omap if <Plug>(coc-funcobj-i)
-- xmap af <Plug>(coc-funcobj-a)
-- omap af <Plug>(coc-funcobj-a)
-- xmap ic <Plug>(coc-classobj-i)
-- omap ic <Plug>(coc-classobj-i)
-- xmap ac <Plug>(coc-classobj-a)
-- omap ac <Plug>(coc-classobj-a)
--
-- " Remap <C-f> and <C-b> to scroll float windows/popups
-- " if has('nvim-0.4.0') || has('patch-8.2.0750')
-- " nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
-- " nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
-- " inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
-- " inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
-- " vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
-- " vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
-- " endif
--
-- " Use CTRL-S for selections ranges
-- " Requires 'textDocument/selectionRange' support of language server
-- nmap <silent> <C-s> <Plug>(coc-range-select)
-- xmap <silent> <C-s> <Plug>(coc-range-select)
--
-- " Add `:Format` command to format current buffer
-- command! -nargs=0 Format :call CocActionAsync('format')
--
-- " Add `:Fold` command to fold current buffer
-- command! -nargs=? Fold :call CocAction('fold', <f-args>)
--
-- " Add `:OR` command for organize imports of the current buffer
-- command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport')
--
-- " Add (Neo)Vim's native statusline support
-- " NOTE: Please see `:h coc-status` for integrations with external plugins that
-- " provide custom statusline: lightline.vim, vim-airline
-- set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
--
--
-- " Mappings for CoCList
-- " Show all diagnostics
-- nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
-- " Manage extensions
-- nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
-- " Show commands
-- nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
-- " Find symbol of current document
-- nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
-- " Search workspace symbols
-- nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
-- " Do default action for next item
-- nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
-- " Do default action for previous item
-- nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
-- " Resume latest coc list
-- nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
--
-- " }}}
--
-- " Emmet --- {{{
-- " Toggle emmet completion using <Tab> with <Leader>em
-- let g:emmet_completion = 0
-- function ToggleEmmet()
-- if g:emmet_completion
-- echo "Emmet completion off!"
-- let g:user_emmet_expandabbr_key=','
-- iunmap <Tab>
-- let g:emmet_completion = 0
-- else
-- echo "Emmet completion on!"
-- let g:user_emmet_expandabbr_key='<Tab>'
-- imap <Expr> <Tab> emmet#expandAbbrIntelligent("\<Tab>")
-- let g:emmet_completion = 1
-- endif
-- endfunction
-- nnoremap <Leader>em :call ToggleEmmet()<CR>
-- " }}}
--
-- " Markdown --- {{{
-- " Conceal markdown text
-- set conceallevel=3
-- " }}}
--
-- " AutoPairs --- {{{
-- let g:AutoPairsFlyMode = 0
-- let g:AutoPairsShortcutBackInsert = '<M-b>' " Use <M-B> to insert the closing parentheses if it jumped ahead by mistake
-- " }}}
--
-- " CHADTree --- {{{
-- let g:chadtree_settings = {
-- \ 'theme': {
-- \ 'icon_glyph_set': 'devicons',
-- \ 'text_colour_set': 'env',
-- \ 'icon_colour_set': 'github',
-- \ "discrete_colour_map": {
-- \ "black": "#21222c",
-- \ "red": "#ff5555",
-- \ "green": "#50fa7b",
-- \ "yellow": "#f1fa8c",
-- \ "blue": "#bd93f9",
-- \ "magenta": "#ff79c6",
-- \ "cyan": "#8be9fd",
-- \ "white": "#f8f8f2",
-- \ "bright_black": "#6272a4",
-- \ "bright_red": "#ff6e6e",
-- \ "bright_green": "#69ff94",
-- \ "bright_yellow": "#ffffa5",
-- \ "bright_blue": "#d6acff",
-- \ "bright_magenta": "#ff92df",
-- \ "bright_cyan": "#a4ffff",
-- \ "bright_white": "#ffffff"
-- \ }
-- \ }
-- \ }
-- " }}}
--
-- " Commentary --- {{{
-- " function s:set_commentary_format()
-- " echo "running command"
-- " if &filetype =~ 'vue\|html\|svelte'
-- " if searchpair('<\(script\|style\)', '', '</\(script\|style\)>', 'Wn')
-- " let b:commentary_format="// %s"
-- " else
-- " let b:commentary_format=&commentstring
-- " endif
-- " endif
-- " endfunction
--
-- " xnoremap gc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap gc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " onoremap gc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap gcc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap cgc :call <SID>set_commentary_format()<CR><Plug>Commentary
-- " nnoremap cgu :call <SID>set_commentary_format()<CR><Plug>Commentary<Plug>Commentary
-- " }}}
--
-- " Easymotion --- {{{
-- let g:EasyMotion_do_mapping = 0 " Disable default mappings
--
-- map <Leader> <Plug>(easymotion-prefix)
-- " Jump to anywhere you want with minimal keystrokes, with just one key binding.
-- " `s{char}{label}
-- nmap s <Plug>(easymotion-overwin-f)
--
-- " Turn on case-insensitive feature
-- let g:EasyMotion_smartcase = 1
--
-- " JK motions: Line motions
-- map <Leader>j <Plug>(easymotion-j)
-- map <Leader>k <Plug>(easymotion-k)
-- " }}}
--
-- " }}}
--
-- " PHP --- {{{
-- " function! RunPHPUnitTest()
-- " cd %:p:h
-- " normal! T yw
-- " let result = system("phpunit --filter " . @" . " " . bufname("%"))
-- " split __PHPUnit_Result__
-- " normal! ggdG
-- " setlocal buftype=nofile
-- " call append(0, split(result, '\v\n'))
-- " cd -
-- " endfunction
--
-- " nnoremap <F12> :call RunPHPUnitTest()<cr>
-- " }}}
--
-- " Moving around --- {{{
-- "Use capital H and L to move to the start and end of lines
-- nnoremap H ^
-- nnoremap L $
--
-- " }}}
--
-- " Operator mappings --- {{{
-- onoremap in( :<C-U>normal! f(vi(<CR>
-- onoremap il( :<C-U>normal! F)vi(<CR>
-- onoremap an( :<C-U>normal! f(va(<CR>
-- onoremap al( :<C-U>normal! F)va(<CR>
-- onoremap an{ :<C-U>normal! f{vi{<CR>
-- onoremap al{ :<C-U>normal! F}vi<CR>
-- " }}}
--
-- " Abbreviations --- {{{
-- iabbrev adn and
-- iabbrev waht what
-- iabbrev tehn then
-- iabbrev tihs this
-- iabbrev teh the
-- iabbrev Teh The
-- " }}}
--
-- " Auto-Commands --- {{{ -- " Auto-Commands --- {{{
-- --
-- augroup modes -- augroup modes

View File

@@ -32,37 +32,33 @@ vim.api.nvim_create_autocmd('FocusLost', {
-- command = 'silent! wa', -- Save all files when text is changed -- command = 'silent! wa', -- Save all files when text is changed
-- }) -- })
vim.api.nvim_create_autocmd("User", { vim.api.nvim_create_autocmd('User', {
pattern = "OilActionsPost", pattern = 'OilActionsPost',
callback = function(event) callback = function(event)
if event.data.actions.type == "move" then if event.data.actions.type == 'move' then
Snacks.rename.on_rename_file(event.data.actions.src_url, event.data.actions.dest_url) Snacks.rename.on_rename_file(event.data.actions.src_url, event.data.actions.dest_url)
end end
end, end,
}) })
local fidget_group = vim.api.nvim_create_augroup('CodeCompanionFidgetHooks', { clear = true })
vim.api.nvim_create_autocmd({ 'User' }, {
local fidget_group = vim.api.nvim_create_augroup("CodeCompanionFidgetHooks", { clear = true }) pattern = 'CodeCompanionRequestStarted',
vim.api.nvim_create_autocmd({ "User" }, {
pattern = "CodeCompanionRequestStarted",
group = fidget_group, group = fidget_group,
callback = function(event) callback = function(event)
local FidgetHelper = require('utils.fidget_helper') local FidgetHelper = require 'utils.fidget_helper'
-- Pass event instead of request if the callback receives the full event object -- Pass event instead of request if the callback receives the full event object
local handle = FidgetHelper:create_progress_handle(event) local handle = FidgetHelper:create_progress_handle(event)
FidgetHelper:store_progress_handle(event.data.id, handle) FidgetHelper:store_progress_handle(event.data.id, handle)
end, end,
}) })
vim.api.nvim_create_autocmd({ "User" }, { vim.api.nvim_create_autocmd({ 'User' }, {
pattern = "CodeCompanionRequestFinished", pattern = 'CodeCompanionRequestFinished',
group = fidget_group, group = fidget_group,
callback = function(event) callback = function(event)
local FidgetHelper = require('utils.fidget_helper') local FidgetHelper = require 'utils.fidget_helper'
-- Pass event instead of request if the callback receives the full event object
-- Pass event instead of request if the callback receives the full event object
local handle = FidgetHelper:pop_progress_handle(event.data.id) local handle = FidgetHelper:pop_progress_handle(event.data.id)
if handle then if handle then
FidgetHelper:report_exit_status(handle, event) FidgetHelper:report_exit_status(handle, event)
@@ -71,4 +67,31 @@ vim.api.nvim_create_autocmd({ "User" }, {
end, end,
}) })
vim.api.nvim_create_autocmd('BufEnter', {
callback = function(event)
local windows = vim.api.nvim_list_wins()
for _, window in ipairs(windows) do
local bufnr = vim.api.nvim_win_get_buf(window)
if vim.api.nvim_get_option_value('buflisted', { buf = bufnr }) then
return
end
end
vim.cmd 'qa'
end,
})
local modes_group = vim.api.nvim_create_augroup('modes', { clear = true })
vim.api.nvim_create_autocmd('FocusLost', {
group = modes_group,
pattern = '*',
command = 'call feedkeys("\\<Esc>")',
})
vim.api.nvim_create_autocmd('BufNewFile', {
group = modes_group,
pattern = '*',
command = 'call feedkeys("i")',
})
require('helpers').edit_cf('a', '/lua/autocmd.lua') require('helpers').edit_cf('a', '/lua/autocmd.lua')

View File

@@ -1,4 +1,8 @@
if vim.loop.os_uname().sysname == 'Darwin' then
return { return {
'wakatime/vim-wakatime', 'wakatime/vim-wakatime',
lazy = false lazy = false,
} }
else
return {}
end