When running other log command the template I had setup in `sl` was not
getting used. This has now been put into the config so its the default
template for any log command.
This also adds a quick alias to switch to another head. When reviewing
pull requests locally this helps quickly switch between heads.
Change the included commits to be the full tree, no matter where you are
on the stack. There is the graphnode to indicate where you are with a
`@`.
Change the color of public commits so you can easily see what are your
commits on the stack. This makes moving around and rebasing easter when
you can see when your last public commit it.
Remove the hard 40 commit limit. Now we are getting the last 40 public
commits plus the commits on your stack
When we are in a sapling repo `gh pr checkout` will not work. If this is
the case we wil need to export the PRR_NUMBER so we can skip getting the
PR number. Working with prr and sapling comes with following limitation.
You can only use the branch name. When git you can use the pr number,
url or the branch. Unfortunately so we can checkout we will need to use
the branch name.
We are now adding lints test that disable async tests that do not use
await in them. I am by far the biggest offender for this and this is one
of the main reasons. Now any test I write will be synchronous by default
until I need it to be async.
In some of the github fonts there are some glyphs now supported, they
are mainly getting used as icons in the vim completion ui.
Now we are not getting any system messages for this it has become quite
annoying.
The ollama plugin was using some APIs that are not yet available in nvim
stable. Now we are using the older APIs we can use this on other
versions of nvim.
The `vim.api.nvim_buf_set_text` does not take some parameters as `-1` to
add text to the end of the line. Now we are getting the text on the last
line adding the new text to it, then replacing the last line.
I have added the neoformat plugin to the list of plugins in my Neovim
configuration file. This plugin provides a powerful formatting tool that
can be used to format code and files in various programming languages.
It also supports multiple formatting options, making it easy to choose
the right settings for your specific needs.
I have been using this plugin for a while now, I must have missed it
when migrating to configz
When running rmv on other linux installes other than Ubuntu its better
to install rmv for the user. This then gets installed in `~/.rvm`.
This now sets up the path so we can use rmv no matter what distro we are
on.
This enhancement includes key mappings designed to improve code folding
in Vim. One of these mappings involves a double leader, which
efficiently toggles the current fold. Additionally, another mapping
utilizes the square bracket convention for seamless navigation between
folds, employing the mnemonic "fold."
Consideration was given to the potential conflict between the `f` key
and "function." After thoughtful deliberation, the decision was made to
use LSP for navigating around functions.
The implementation is currently integrated with prr to narrow the focus
of differentials to a single hunk. This refinement significantly
enhances the manageability of reviewing large pull requests.
This is the plugin I have been using for a while now. I think its much
nicer to use than a tree style. Treating the filesystem as a buffer is
something I used in emacs and have come quite used to.
This is mainly for stylelint, I don't always have this installed and it
throws an error when you open a sass file and it tries to lint the
buffer. Now it will not know about any linters unless they are in the
PATH.
Eslint has become slow for some projects for reasons unknown. In an
attempt to speed up my linting process, I'm experimenting with eslint_d,
which keeps a process running. For the time being, I'd like to keep
linting and formatting separate from the Language Server Protocol (LSP)
to avoid the need to install every LSP. This way, I can have `shfmt`
without the bash LSP, for example.
For JavaScript, I may consider moving this into an LSP since I use it
for work, which would justify combining responsibilities. However, for
now, I'll be giving eslint_d a try.
Indent Line is no longer in use; it's quite an old plugin, and there are
likely better ways to implement this functionality. For now, I won't be
using any indent markers, and we'll see how that goes. If I encounter
issues, I will explore alternative plugins.
Orgmode was an attempt to bring over the knowledge base from Emacs. Vim
doesn't have the same workflow as Emacs, and everything is less tightly
integrated into a single application. I have now transitioned to using
Markdown and Obsidian, focusing on the more widely-used Markdown
integration.
Conjure is too heavy for my needs. All I require is a simple plugin to
execute Clojure in a REPL. This plugin conflicts with many other plugins
and filetypes, where the LSP (Language Server Protocol) should handle
most of the heavy lifting. I've created my own plugin for my very basic
use case.
See: https://github.com/AdeAttwood/nrepl.nvim
The Ollama plugin provides a simple way to interact with an Ollama
language model from within Neovim. It uses as many of the built in
features as possible like buffers, tabs and markdown. This will make
this as small as possible so you don't have to install plugins with
loads of features you don't use.
In the shell prompt when you were in a directory it would commonly be
`~s/github.com/AdeAttwood/Dotfiles|branch ⇒`
This mapping will shorten this down to try and make the prompt a bit
less intrusive when in a subdirectory of a project.
`~gh/AdeAttwood/Dotfiles|branch ⇒`
When using light and dark theme I had to keep changing the git config so
git diff was readable. I have found that base16 shell has built in
support for delta so we can remove this config and let base16 shell deal
with it.
See: 9706041539/hooks/base16-delta.sh
A Procfile runner for tmux. Each procfile will have its own tmux session
and each process will have its own window. This way you can use tmux to
attach view logs and also restart individual processes.
This will output the git sha of the merge commit that a given commit is
part of. This can be used to get back to the pull request a commit was
part of. Or it can be used to help revert a hole changeset rather than
only one commit.
There are two wrapper scripts for running codeclimate locally in docker.
This script is adapted from their website. There is also a script that
will output the results in vimgrep format, so they can be easily loaded
into the quickfix list.
Move the linters to run on BufReadPost instead of BufEnter. This was
running the linters whenever a buffer opened, when jumping around
quickly with <CTRL-i> and <CTRL-o> this would cause the linters to run a
lot when there were not needed. Now were are only running them once when
the buffer is read from disk.
Adds a custom function that will add cspell to all of the filetypes.
This will then only run `try_lint` once to improve the performance. Now
neoformat has gone fully async. When calling `try_lint` one after the
other, the first processes were getting canceled.
I have been using this quite a lot and have not missed the search
highlights. When this was on would alway search then use `:noh` to
remove all the highlighting.
When working on the start of a project its nice to know what you are
changing. Or when you are working on a refactor having points to get
back to is nice. When we are done we can go and clean up the history so
it makes sense, for review, or just give our points more descriptive
messages and you don't need to brake your flow when coding.
In markdown I have long lines wrapping as we are often editing docs that
don't stick to 80 columns. This makes it hard to navigate with j and k
imposable to use becase is skips over the wrapped lines.
This now using gj and gk to navigate wrapped lines so j and k will act
naturaly and move down one "line" even on the wrapping.