There is some weirdness with `:GBrowse` where it will open the file and
line but only if the line / block is visually selected. This was too
many keystrokes so I added a binding to do it.
You can now run Jest on different parts of our app and populate the
quickfix list with the errors. You can run the tests on
- The current tests under the cursor
- All the tests in the current file
- All the tests on the project
This was an issue when editing files that don't have an lsp server. The
document highlight is only enabled for lsp's. This splits out the
highlighting and the diagnostic float into two separate auto commands.
The document highlight is now only enabled when the lsp is registered.
The diagnostic float is now enabled for all files. This is because the
the vim diagnostics are used for lots of other things like spell checking
and codelimate.
We have the kind of the completion item in the menu as an icon and the
name at the end. Now the end one has been replaced with the source name
so we can see what the completion item is and where it is from.
Due to starting to learn clojure, I've had java classes popping up in
the completion menu. Because they are so long it needs to be wider so I
can see then.
OMG this is AMAZING, it writes files and creates all the directories for
that file working the same as `mkdir -p`. I have honestly had a todo to
create a plugin that dose this on the before save hook for a long time.
Thank you reddit, and remember always read the manual `:help :w`!!
Install all of the tools and config for clojure development. This adds
the first configz module that is not yet properly integrated and
automaticaly run with the `dotfiles` shell command.
Now when loading vim the them from the shell is getting used rather than
only every using tomorrow night. When I use tomorrow it will be
inherited in vim.
Now when the editor is idle it will use the lsp to highlight other
references to the token under the cursor.
It will also show all the diagnostics in a popup like the lsp hover that
I manually use via <C-k>. This is helpful with long diagnostic messages
that run off the edge of the terminal when.
Custom plugin to check the .nvmrc file. When entering a directory, it
checks to see if you have the desired node version installed for the
current project. If it is, it will use it automatically, if not, then it
will ask you if you want to install it. After, it will install all the
JS developer tools for that version of NodeJS.
This is a different implementation than the default oh-my-zsh version.
The main difference is that it will not reset the node version when
leaving a directory. It will only preform an action if there is a
`.nvmrc` file in the current directory. It will not even use the
`nvm_find_nvmrc` command because any interaction with nvm make the
stranded `cd` command extremely sluggish.
The biggest change here is that I am no longer cycling though completion
items as the first thing. Tab will now mainly control the snippet jumps
in completion not items. Completion items can be used exclusively with
<C-n> and <C-p> and <CR> to complete the selected item. If the
completion menu is open and <CR> is pressed, this will select and
complete the first item.
I will soon be able to remove the <C-h> and <C-l> mappings when my
muscle memory adapts as this will now be controlled with tab.
This is to keep things consistent with how I have ivy.nvim working in
vim. All fuzzy finding is now done at the bottom of the terminal with
the preview on top. This prevents the eyes to jumping up and down and
keep the focus to the bottom of the terminal.
This moves all of the snippets into a yasnippet file format so I can
better manage and edit the snippets. I did not like having them all in
one file stored as strings.
This implements a custom file parser that will convert the snippet file
into a luasnip parsed snippet that uses the LSP snippet syntax.
It also ports over some of my most used snippets from the emacs config,
maybe one day I could share the snippet in vim and emacs.
This is not working correctly when ruby is installed with RVM. It will
need some debugging that will need to be done another time.
For now the only one getting use is puppet-lint, if this is not found it
can be installed when need.
This is a script that will popup a window with a list of windows in a
fzf promp. When selected the window will be focused. If the window is in
another session the session will also be switched and the window focused
This is from the dotfiles a long time ago, its still in vimscript, don't
think I will ever convert it over to lua.
This also disables base16 shell when the terminal is running inside vim
like I am doing with emacs.
I am finding my self wanting to view the output of command nowadays,
rather then wanting to run a quick command and see if its passed or not.
By removing the exit at the end of the command the terminal dose not
close now. If I want the terminal to close I can still append the
command with `&& exit` when using `Run`
This will now use a custom config file `$HOME/.cspell.json` that will
use a custom dictionary for my own words. This will have things like my
name so cspell stop telling me I spelt my name wrong.
Will also add the `--language-id` flag with the current filetype, so it
can match language specific words.
Currently it is set up to use tab to jump between placeholders and go to
the next completion item. This is causing conflicts when typing
variables in the snippet placeholders.
Now you can use <CTRL-h> to jump to the next placeholders. This is only
available when the completion is active so, dose not conflict with
switching windows.
The treesitter plugin for org files was getting setup after the org
plugin was loading, this is throwing errors when trying to view or edit
org files.
Now the plugin order has been changed so it all works correctly
Currently they are only getting saved when you save buffers. I was
missing errors when jumping around because the files do not get saved.
This will now show me the errors when the buffer opens not only when the
buffer is saved and I get to see linting errors when jumping around a
codebase.
This is when inside a snippet the tab get taken over by the completion
menu, you can then not jump to the next mark in the snippet.
Now you can use <C-e> to close the completion menu and tab will then
jump to the next mark in the snippet.
Use the CommandTWildIgnore insted of the wildignore so I can still get
completion for :e in folders like vendor or node_modules but, they will be
ignored from command-t file searches.
This is getting hard to manage cuz the settings.json is always changing
with different things I am playing with. The main editor is vim or
emacs, vscode is just a text editor for using multiple cursors.
Update the terminal prompt so you can step forward and backwards though terminal
props using vims `[[` and `]]` that is included in evil-mode.
Enable goto-address-mode in the terminal so I am click on and open urls in the
browser from the terminal. This is most used for opening create merge requests
links when pushing commits to a branch.
At this point there is a very little I am using of oh-my-zsh. I think it could
be worth looking at removing it and build my own git module based on the
oh-my-zsh one
This would switch between 'doom-tomorrow' for use with the GUI and
'base16-tomorrow' when using the terminal. Previously the base16 themes has some
issues with GUI emacs and doom was much better. However, since a913143ee when I
forked base16 I have been making small tweaks and don't use the doom themes any
more.
This is now time to remove them and go full base16
This is the first implementation of the fmt-mode built with 'reformatter'. This
removes the CLI tool that was calling all the different formatters and replaces
it with an emacs mode.
The CLI tool was an attempt to create a common CLI tool to format code. In
reality this just became hard to maintain and was only ever used in the emacs
formatter. To format code in the CLI I was just using the upstream tools.
See: https://github.com/purcell/emacs-reformatter
When trying to merge-patch it will fail if the branch you are trying to merge is
already on the local machine.
This will ask if you want to remove it. The branch will be removed locally and
then pulled from the remote to ensure you are not merging any un-pushed local
changes.
When my custom tab was getting set on all modes it was not letting me tab in
counsel or any of the command like modes.
This now only uses the supper tab in prog-mode where this really applies.