Commit graph

51 commits

Author SHA1 Message Date
Daniel Siepmann 41a03f832d
Configure neovim to show all telescope builtin + extensions
As seen on
https://www.reddit.com/r/neovim/comments/tw2d1q/are_additional_pickers_supposed_to_appear_in_the/
2022-05-25 13:17:48 +02:00
Daniel Siepmann 3f76453f79
Cleanup ale configuration file
Remove old commented out blocks.
Remove unnecessary function and call, just set the option.
2022-05-23 18:45:51 +02:00
Daniel Siepmann 003b6be119
Integrate languagetool into neovim
I already set it up as service for firefox extension.
This now also integrates into neovim.
2022-05-23 18:45:51 +02:00
Daniel Siepmann 93bd4a08d8
Do not execute PHPUnit tests via codeception 2022-05-23 16:22:27 +02:00
Daniel Siepmann 10702e20f7
Update phpunit options for reuter in neovim
This project now uses TYPO3 v10 and phpunit 9.5.x.
I now can use testdox :)
2022-05-23 11:47:19 +02:00
Daniel Siepmann ec90898c38
Add tree sitter to neovim
This installs used languages.
Also update colorscheme to support new hi groups introduced by ts.
2022-05-20 11:05:26 +02:00
Daniel Siepmann 47eac8a8ad
Allow neovim test plugin to detect codeception test
It missed the dist file during detection.
I already opened an PR upstream: https://github.com/vim-test/vim-test/pull/654
2022-05-18 19:39:35 +02:00
Daniel Siepmann 25e5dff4e9
Adjust Neovim keymappings for PHP / LSP
Telescope no longer provides LSP code actions.
I add a mapping to trigger code actions.

I also ensure that I don't have to wait for phpactor menu.
And I didn't use hover anyway.
2022-05-17 13:07:40 +02:00
Daniel Siepmann f3e90cd960
Fix broken TYPO3 auto login
Enable auto login
Fix broken include of additional configuration. Seems it is loaded
multiple times, we should prevent _once to always have it loaded.
2022-05-16 11:46:25 +02:00
Daniel Siepmann bdbaaba2fd
Remove Neovim cmp autocomplete
I found it to disturbing and prefer the native behaviour I am used to.
2022-04-12 16:44:03 +02:00
Daniel Siepmann f77855abac
Add Neovim snippet for PHP invoke
Useful as many event handler will only implement this method.
2022-04-12 16:41:44 +02:00
Daniel Siepmann 8de53581b2
Integrate gitlint via ale for SAC customer project
We have pretty simple rules.
The first line needs to match a specific pattern.
2022-03-29 13:51:59 +02:00
Daniel Siepmann 3b3f2d0588
Integrate gitlint via ale into Neovim for writing commit message
This is only done for one customer yet, as this customer has clean rules
which are already provided as community rules via gitlint.
2022-03-29 11:52:32 +02:00
Daniel Siepmann f0323720e7
Update typoscript syntax plugin for Neovim 2022-03-23 17:41:47 +01:00
Daniel Siepmann 774e4f8555
Rename Neovim custom telescope
The keyboard shortcut was already in use.
I therefore renamed custom_functions into custom runs.
That way I can add multiple things in the future.
E.g. the items to select can also be a table which defines the name as
well as what to execute. That way I could add functions, commands and
other things.
2022-03-23 16:37:26 +01:00
Daniel Siepmann 380e4b6cd7
Add first custom Neovim Telescope picker
This adds a list of my custom defined functions for easier calling.
2022-03-23 09:31:33 +01:00
Daniel Siepmann 30db8651a7
Improve cmp and lsp integration in Neovim
Use omni after more specific completions.
Add buffer to completion, not as fallback. I often wanna complete from
current buffer.

Keep syntax consistent when requiring lua modules.
2022-03-23 08:23:10 +01:00
Daniel Siepmann b97c6b363b
Enable Neovim cmp lsp support
It just works now, I probably have changed something to make that happen
but don't know what exactly.
2022-03-23 07:41:26 +01:00
Daniel Siepmann cb7d380e0b
Add Neovim cmp autocompletion
Finally a fast none disturbing auto completion.
lsp_signature_nvim is kept as it provides info while filling in
arguments.
cmp lsp didn't work in my case, so didn't add it.
2022-03-22 13:31:26 +01:00
Daniel Siepmann e64f6b8030
Migrate whole Neovim configuration into expected structure
That way I can load my whole configuration as a plugin.
I no longer need to explicitly set any configuration via nix as init.vim
or such things.
2022-03-22 09:38:34 +01:00
Daniel Siepmann 1b2e8a969a
Remove Neovim dadbod database integration
Autocompletion is way behind mycli / litecli. And that's more important
to me. So do not keep the plugins. Keep existing workflow instead.
2022-03-22 07:47:28 +01:00
Daniel Siepmann a527da50ac
Add Neovim dadbod-* plugins
Not sure if I'll settle on that. I'm currently used to mycli and
litecli.
But sounds useful to have it within the editor to not have different
programs with different configuration and behaviour.
2022-03-21 16:01:01 +01:00
Daniel Siepmann a9c1c526f1
Adjust Neovim Telescope design
Use ascending sorting to move selection to the prompt.
Also shorten width as it felt to much on my larger screen.
2022-03-21 15:49:17 +01:00
Daniel Siepmann c856a38eab
Auto select first autocomplete item in Neovim.
As this is most of the time what I need.
I can deselect and type freely to narrow down anyway.
2022-03-17 10:12:35 +01:00
Daniel Siepmann d7f83654e8
Add Neovim LSP for Yaml files 2022-03-17 09:01:15 +01:00
Daniel Siepmann 8448e85bb1
Add xmllint via ale to neovim
Maintain all dependencies via nix / home-manager.
Load xsd schema file.
Define nix xmllint for linting.
2022-03-16 17:12:48 +01:00
Daniel Siepmann 7d333c703b
Streamline omnifunc for php
use same as for vim
2022-03-16 16:54:46 +01:00
Daniel Siepmann 565540611b
Add vim language server 2022-03-16 16:54:23 +01:00
Daniel Siepmann 7bb2b2921e
Show neovim omnifunc completion also for single item
In order to allow to select the item.
2022-03-16 16:52:47 +01:00
Daniel Siepmann 02437cefba
Configure Neovim completion
Still use menu like default.
Do not show preview as in default.
Do not insert as in default.
Do not select as in default.

This allows me to see suggestions but continue typing to narrow down.
Also allows me to manually select a result.

That way completion is out of my way but there to support me.
2022-03-16 16:25:06 +01:00
Daniel Siepmann 3269d15f1d
Extend neovim telescope tags with sql
Also add alphabetical sorting of configuration keys.
2022-03-16 15:38:49 +01:00
Daniel Siepmann 668882522b
Do only list tracked files by default via telescope in neovim 2022-03-16 15:15:17 +01:00
Daniel Siepmann 40cef5b623
Add LSP basics (PHP)
Add for PHP via existing phpactor as server.
Use new signature plugin for proper none irritating inline help during
function calls.

TODO: Get rid of preview window showing up …
2022-03-16 14:46:12 +01:00
Daniel Siepmann 0d4f5463d1
Migrate Leaderf to Telescope
Written in Lua.
Very flexible.
Clean documentation.
Easy to extend and configure.
Can do everything I wanted with a good feeling.
2022-03-16 14:44:49 +01:00
Daniel Siepmann e29ceb3b66
Optimize colors of leaderf Neovim plugin 2022-03-16 12:44:20 +01:00
Daniel Siepmann 42c78c694d
Cleanup leaderf configuration 2022-03-16 10:17:38 +01:00
Daniel Siepmann 51cb2c9ad3
Migrate Neovim CtrlP to FinderF
Way faster and matches my own preferences. Has a preview and pop up in
the center of the screen.
Comes with many other modes like colorscheme, help, line, etc.
diff --git a/home/programs/neovim.nix b/home/programs/neovim.nix
index 55783de..dda525c 100644
--- a/home/programs/neovim.nix
+++ b/home/programs/neovim.nix
@@ -239,8 +239,8 @@ in {
     }

     {
-      plugin = ctrlp-vim;
-      config = pkgs.lib.fileContents ./neovim/plugins/ctrlp.vim;
+      plugin = LeaderF;
+      config = pkgs.lib.fileContents ./neovim/plugins/leaderf.vim;
     }

     # Syntax
diff --git a/home/programs/neovim/config/functions.vim b/home/programs/neovim/config/functions.vim
index 24e0c00..fea577b 100644
--- a/home/programs/neovim/config/functions.vim
+++ b/home/programs/neovim/config/functions.vim
@@ -113,7 +113,7 @@ function! StartProfiling()
     execute(':profile file *')
 endfunc

-function! CtrlPCurrentComposerPackage()
+function! LeaderfCurrentComposerPackage()
     let l:filePath = split(expand('%:p:h'), '/')

     while !filereadable('/' . join(l:filePath + ['composer.json'], '/')) && len(l:filePath)
@@ -121,7 +121,7 @@ function! CtrlPCurrentComposerPackage()
     endwhile

     if len(l:filePath)
-        execute(':CtrlP /' . join(l:filePath, '/'))
+        execute(':LeaderfFile /' . join(l:filePath, '/'))
     else
         echom 'No composer package detected.'
     endif
diff --git a/home/programs/neovim/config/mappings.vim b/home/programs/neovim/config/mappings.vim
index bd3aee9..7b7ad7d 100644
--- a/home/programs/neovim/config/mappings.vim
+++ b/home/programs/neovim/config/mappings.vim
@@ -10,10 +10,11 @@ nnoremap <leader>v :set paste!<cr>
 nnoremap <leader>nh :nohlsearch<cr>

 " Configure navigation, e.g. go to buffer, file, ...
-nnoremap <leader>p :CtrlP<cr>
-nnoremap <leader>l :CtrlPBuffer<cr>
-nnoremap <leader>r :CtrlPBufTag<cr>
-nnoremap <silent> <leader>c :call CtrlPCurrentComposerPackage()<cr>
+nnoremap <leader>pp :LeaderfSelf<cr>
+nnoremap <leader>pf :LeaderfFile<cr>
+nnoremap <leader>pb :LeaderfBuffer<cr>
+nnoremap <leader>pt :LeaderfBufTag<cr>
+nnoremap <silent> <leader>pc :call LeaderfCurrentComposerPackage()<cr>

 nnoremap <leader>k :NERDTreeToggle<cr>
 nnoremap <leader>f :NERDTreeFind<cr>
diff --git a/home/programs/neovim/plugins/ctrlp.vim b/home/programs/neovim/plugins/ctrlp.vim
deleted file mode 100644
index c45b87e..0000000
--- a/home/programs/neovim/plugins/ctrlp.vim
+++ /dev/null
@@ -1,26 +0,0 @@
-let g:ctrlp_follow_symlinks = 2
-" Default to regex mode
-let g:ctrlp_regexp = 1
-let g:ctrlp_match_window = 'top,order:ttb,min:1,max:10'
-" let g:ctrlp_open_new_file = '0'
-" let g:ctrlp_lazy_update = 1
-let g:ctrlp_show_hidden = 1
-
-let g:ctrlp_types = ['fil', 'buf', 'buftag']
-
-let g:ctrlp_working_path_mode = 'w'
-let g:ctrlp_max_files = 0
-let g:ctrlp_clear_cache_on_exit = 0
-
-" Configure completion for tags in buffer,
-" e.g. configure which kinds to complete for css.
-let g:ctrlp_buftag_types = {
-  \ 'css' : '--css-types=vcit',
-  \ 'typescript' : '--typescript-types=cnfvmitesod',
-  \ 'xml' : '--xml-types=ci',
-  \ 'rst' : '--reStructuredText-types=csSt',
-  \ 'markdown' : '--Markdown-types=csStT',
-  \ 'fluid' : '--xml-types=si',
-  \ 'apache' : '--apache-types=s',
-  \ 'yaml' : '--yaml-types=t',
-\ }
diff --git a/home/programs/neovim/plugins/leaderf.vim b/home/programs/neovim/plugins/leaderf.vim
new file mode 100644
index 0000000..7627b07
--- /dev/null
+++ b/home/programs/neovim/plugins/leaderf.vim
@@ -0,0 +1,213 @@
+let g:Lf_WorkingDirectoryMode = 'c'
+
+let g:Lf_FollowLinks = 1
+let g:Lf_ShowHidden = 1
+
+let g:Lf_WindowPosition = 'popup'
+let g:Lf_HideHelp = 1
+
+let g:Lf_GtagsAutoUpdate = 0
+
+let g:Lf_IgnoreCurrentBufferName = 1
+
+let g:Lf_ShowDevIcons = 0
+
+" TODO: Try to port to existing colorscheme, does it work with load order?
+let g:Lf_PopupPalette = {
+    \  'dark': {
+    \   'Lf_hl_popup_inputText': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'blue',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_window': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_blank': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_cursor': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_prompt': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_spin': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_normalMode': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_inputMode': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_category': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_nameOnlyMode': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_fullPathMode': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_fuzzyMode': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_regexMode': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_cwd': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_lineInfo': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_popup_total': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_cursorline': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': '235',
+    \   },
+    \   'Lf_hl_selection': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_match0': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'blue',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_match1': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'blue',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_match2': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'blue',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_match3': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'blue',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_match4': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'blue',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_match': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'blue',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_lineLocation': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_previewTitle': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_winNumber': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_winIndicators': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_winModified': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_winNomodifiable': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_winDirname': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_quickfixFileName': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_quickfixLineNumber': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_quickfixColumnNumber': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_loclistFileName': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_loclistLineNumber': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \   'Lf_hl_loclistColumnNumber': {
+    \       'cterm': 'none',
+    \       'ctermfg': 'none',
+    \       'ctermbg': 'none',
+    \   },
+    \  }
+    \ }
+
+let g:Lf_PreviewInPopup = 1
+let g:Lf_PreviewHorizontalPosition = 'center'
+let g:Lf_PreviewCode = 0
+let g:Lf_PreviewResult = {
+    \ 'File': 1,
+    \ 'Buffer': 1,
+    \ 'BufTag': 1,
+    \}
2022-03-16 09:05:13 +01:00
Daniel Siepmann 551153f446
Do note use paratest in Neovim plugin vim-test
Remove the paratest detection.
I consider paratest only for CI and executing a huge set of tests.
But I use vim-test only to execute a single test file or single test.
2022-03-15 17:29:34 +01:00
Daniel Siepmann f4b39fe17c
Do not show Neovim Ctrlp mru
I just don't use this feature.
2022-03-15 10:27:44 +01:00
Daniel Siepmann 269b15cc30
Allow Neovim Ctrlp to search only files in current composer package 2022-03-15 10:25:04 +01:00
Daniel Siepmann 51ca95129d
Adjust SAC indentation of xliff files 2022-03-15 09:57:03 +01:00
Daniel Siepmann 1a61b2b103
Optimize Neovim plugin ctrlp file selection
Do not clear cache on exit. I'm working on huge projects and want a fast
file navigation.
Do not limit number of files as default is already way to low for the
large projects I'm working on.
2022-03-15 09:09:05 +01:00
Daniel Siepmann 9e5a77f592
Migrate Neovim snippets to inline configuration
Same as with configuration.
No need for extra repository.
2022-03-15 08:16:18 +01:00
Daniel Siepmann 2a55b8e6fd
Adjust Neovim sql comment
Use TYPO3 default "#" instead of "--".
I nearly exclusively write SQL comments within TYPO3 sql files.
2022-03-15 08:10:54 +01:00
Daniel Siepmann 8541b19663
Adjust neovim configuration for sac customer 2022-03-15 08:01:46 +01:00
Daniel Siepmann 7106b7cac7
Add neovim configuration inline instead of another repository
This eases maintenance as I don't need to commit and push one repo, and
update rev and sha in here.
Instead I can just change configuration and run home-manager switch.
2022-03-15 08:00:46 +01:00
Daniel Siepmann bbaa8830c3
Remove custom grepping from neovim
I'm using plugin ag already.
2022-03-14 16:33:59 +01:00
Daniel Siepmann a683442f90
Remove neovim plugin syntastic
I'm using ale for such a long time already …
2022-03-14 16:31:57 +01:00
Daniel Siepmann a4f46efb9a
Update neovim ale plugin settings 2022-03-14 16:29:19 +01:00
Daniel Siepmann 3b8e4e757f
Use native vim plugin ctrlp file searching
This respects wildignore and removes need for custom grep command.
2022-03-14 09:47:01 +01:00