Commit graph

340 commits

Author SHA1 Message Date
a39b844c63 feat(sapling): display the pr link if we have already created one
When pushing your stack we show all the branches we have pushed to with
a compare link to github. When we create a PR the compare link is no
longer relevant. Now we will show a link to the PR that is associated
with that branch.
2024-06-08 18:00:16 +01:00
a5cd17fe58 feat(vim): add dev_case plugin for a better search and replace
When you are in a buffer sometimes you want to do a search and replace
but preserve the case. For example if we have the following code.

```rust
let some_struct = SomeStruct::new();
```

if we want to rename this to `another_struct` we can call dev case and
it will search and replace preserving the case. We can run the following
command.

```
:S some_struct another_struct
```

This will replace the above code so we will be left with

```rust
let another_struct = AnotherStruct::new();
```

This plugin handles calling the cli tool and displaying an in place
preview of the change so you can see exactly what you will be changing.
It uses the `S` custom command so it feels similar to the built in `s`
Substitute command.
2024-06-08 17:53:07 +01:00
78ba21f30d chore(vim): add some more of the busted globals 2024-06-08 17:50:56 +01:00
56bcdd34b3 refactor(core): move from base16 themes to nord
This is moves everything I can think of. A lot of the things I use have
this built in. The vim and tmux themes has been added so the place I
spend all my time looks nice.
2024-06-08 14:50:57 +01:00
f4d9e842ed feat(vim): add snippets for testing in lua and playwright 2024-06-08 14:12:17 +01:00
4b55548a96 feat(vim): implement lua go to spec
This add a pattern for all lua files that will go to the corresponding
spec files. I don't think this will work on all the different projects
but, its a good start. There may need to be some tweaking to make it
work in vim plugins.
2024-06-03 08:15:10 +01:00
5d68da6e36 feat(vim): add ftdetect for sapling commit files
They will now get the same filetype as the hgcommit. This is the
filetype they are based off.
2024-05-19 19:42:42 +01:00
6c7ea4aba6 feat(vim): use csharpier for formatting c-sharp 2024-05-19 19:23:40 +01:00
394fef39ff fix(sapling): run the bin sl not the alias 2024-05-19 19:22:25 +01:00
8fcf291c56 chore(vim): move back to eslint
All the issues have not been resolved with linting. Nvim lint is more
stable with its async linting.
2024-05-19 19:20:46 +01:00
dab35e8523 fix(vim): ensure run command open a new split
For some reason the Run command was no longer opening a new window. It
was just failing.
2024-05-19 19:18:46 +01:00
56b2b01f6f refactor(vim): move the cspell config to extend the builtin one
There have been some changes in the cspell config upstream to fix issues
in the cspell cli. These are mainly around the parsing of the output.

The only things my changes are adding in the file type and applying my
config file. They are only in the command not the parser.

Now we are using the upstream config and adding the extra params I need
rather than having to maintain a completely override.
2024-05-19 16:55:07 +01:00
521382ecb7 fix(terminal): disable wayland in wezterm
This is causing issues with losing the cursor, you then need to move the
cursor over another window to get it back.

On Gnome it is also not picked up but the window manager. You cannot
then using tools like wmctrl to reposition and resize it.
2024-05-03 07:52:49 +01:00
bda740caf7 fix(vim): disable hover in liquid files
This is causing the same issues as the other file types, when there is
an lsp attached but it dose not support hover for this filetype
2024-05-03 07:51:28 +01:00
1a0828b763 feat(vim): setup c# and f# languages 2024-05-03 07:32:09 +01:00
2450448b7e feat(sapling): add script to push up all bookmarks in a stack 2024-04-19 20:14:52 +01:00
3f3b98bf1b refactor(sapling): run addremove before committing
When running commit, any new file that has been created dose not show up
ready to be committed. I am running commit in interactive mode so it
dose not get committed automatically. I can then choose if I want to
actually commit the file
2024-04-19 20:04:37 +01:00
2b6097dc9e fix(shell): there seems to be a random dash in the fp command 2024-04-10 19:26:00 +01:00
29618280a1 feat(sapling): move to using the default log template
Previously we have move the templates in to the sapling config. Now we
can use that everywhere by default so everything looks the same.
2024-04-10 19:21:49 +01:00
38be0963c4 feat(vim): move to commit mono font
I think I will be installing this with the dotfiles soon.
2024-04-10 19:20:42 +01:00
b1746b0178 feat(vim): auto install treesitter grammars
Previously we were defining what ones we want to install. Now we are say
we want to install the grammar when we go to a file. If we don't have
that grammar installed then we will install it then
2024-04-10 19:17:42 +01:00
a1e089babb feat(vim): bump the priority of snippets in completion
I want the snippets to be the first thing in the completion when they
are available.
2024-04-10 19:12:59 +01:00
ad88b65474 refactor(vim): update the icons that show in completion 2024-04-10 19:09:24 +01:00
2f6e30fb53 refactor: start pulling out the prr config into a plugin
All the prr code review stuff will be in its own plugin soon. There are
some sweet features coming with a treesitter parser for syntax
highlighting.
2024-04-10 19:06:51 +01:00
1dfe088757 feat(shell): don't load base16 themes when useing WarpTerminal
I have started playing with this terminal and it has all its own themes
and base16 was getting in the way.
2024-03-02 18:25:12 +00:00
53a9a07bf6 fix(vim): add busted globals to the lua diagnostics lsp
When writing tests with busted they use some other globals that you need
to tell you lsp about. I already have this for when I'm working on the
nvim config and configz.
2024-03-02 18:22:29 +00:00
ff3b54d281 feat(vim): allow emmet to be used in liquid files
When using the liquid templating language I would like to use emmet
syntax to expand html.
2024-03-02 18:20:21 +00:00
cd382dbdf8 fix(vim): add --no-require-git to the ferret rg command
Now that I have mostly moved over to sapling, rg dose not ignore git
files by default. When searching in vim it would search in the
node_modules by default. As you can imagine this took for ever.

Now we are passing the `--no-require-git` flag so it will ignore any
file / dirs that are in any .gitignore by default.
2024-03-02 18:16:22 +00:00
e17f3f0e97 feat(terminal): configure wezterm titlebar so it looks nice
When using wezterm on wayland the gnome titlebar dose not get used. The
coloring of this is dark by default and dose not look good with a light
background.

Going forward I would like to configure this to adapt to the system
light or dark settings.
2024-03-02 18:13:33 +00:00
73ecb1604d feat(sapling): move log template into the config and add switch alias
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.
2024-03-02 18:08:43 +00:00
5c87f2271b feat(sapling): enable all the commit snippets in hgcommit filetypes 2024-02-12 16:19:15 +00:00
e11deb18fd feat(bin): add script to run rspec when files have changed 2024-02-12 16:17:42 +00:00
7b1243035b feat(sapling): improve log
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
2024-02-12 16:10:23 +00:00
07fc786709 chore(sapling): add alias for diff and status 2024-01-29 20:43:02 +00:00
b91490e273 fix(shell): update prr to work with sapling so we can code review
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.
2024-01-29 20:26:05 +00:00
659328a7b8 fix(sapling): setup nvim as the diff tool
There built in diff tool points to vimdiff. This dose not have all of my
key bindings and all the nice features I have setup in nvim.
2024-01-29 20:20:41 +00:00
617ba4f452 chore(shell): remove the android env stuff its never used 2024-01-15 19:27:36 +00:00
d7c7fa9914 feat(sapling): get everything setup 2024-01-15 19:26:48 +00:00
7834732c41 feat(shell): let base16-shell define the delta theme 2024-01-15 19:05:48 +00:00
bbb12f136a refactor(core): move git module over to configz 2024-01-15 19:02:33 +00:00
48a18162a0 chore(vim): remove async from the default test
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.
2024-01-08 17:38:38 +00:00
54bedf5588 feat(vim): add a couple of snippets for writing jest tests 2024-01-05 19:43:15 +00:00
a36b52c5c4 feat(bin): add a script to quickly create vms 2024-01-05 19:41:22 +00:00
0bc3b77bd8 fix(term): disable warning about missing glyphs in wezterm
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.
2023-12-27 11:19:05 +00:00
517e37769f feat(vim): allows inputing for Olmama model so we can use other models
Now you can run `Olmama <model>` to use Olmama with the selected model.
Now you don't have to use only Codellama; there are others we can use.
2023-12-27 11:18:30 +00:00
8de4999881 refactor(vim): update ollama plugin to use older APIs
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.
2023-12-26 10:38:59 +00:00
a7774f9576 feat(shell): setup rmv for a user local install
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.
2023-12-12 07:44:05 +00:00
3e07954682 feat(vim): introduce key mappings for folding
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.
2023-12-11 20:29:57 +00:00
321ec9b37d chore(term): add the wezterm config
I have been using this for quite a while now, this only adds the config
to the repo I have not yet got round to creating a configz module.
2023-11-25 20:50:19 +00:00
7e7429a70d refactor(core): convert the bid module to configz 2023-11-25 12:07:11 +00:00
4742f38122 refactor(core): move the zsh module over to configz 2023-11-25 11:31:26 +00:00
fe53b83ca9 chore(shell): enable vars to base16 shell
This is to get base16-shell to create config files for common
extensions. The one I would like to use the most is delta.
2023-11-25 10:50:43 +00:00
da223e930d style(core): run stylua 2023-11-24 08:01:34 +00:00
0fa7e58c98 feat(vim): have a play with marksman the markdown lsp 2023-11-24 07:54:33 +00:00
47688aa2b0 chore(vim): add ruby linters 2023-11-21 07:40:51 +00:00
ca4f0019a8 feat(vim): add the oil file management plugin
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.
2023-11-20 08:03:03 +00:00
bfe83d49f4 fix(vim): only register linters when there is an executable
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.
2023-11-20 07:57:34 +00:00
7f95ee24f8 refactor(vim): move to eslint_d from eslint
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.
2023-11-08 07:56:41 +00:00
4cffec6e7f chore(vim): remove indent-line, orgmode, and conjure
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
2023-11-08 07:43:50 +00:00
82d2b12659 feat(vim): add the first impl of the ollama pluign
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.
2023-11-06 08:34:24 +00:00
8a813aad8f chore(shell): add github shortcut so it shows shorter in the prompt
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 ⇒`
2023-11-06 08:30:42 +00:00
540b5b0c72 feat(vim): finally commit the copilot config
I have been using this for quite a while now. This add the copilot
plugin and the intergration with nvim-cmp
2023-11-05 18:09:41 +00:00
b6170773c6 feat(core): add configz install on the dotfiles cli 2023-11-04 16:59:11 +00:00
447563c596 feat(pp): move the tmux config over to configz 2023-11-04 16:52:32 +00:00
8d56ef0940 feat(shell): let the delta theme be defined by base16-shell
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
2023-11-04 15:23:57 +00:00
8a021a6e0a feat(pp): migrate the nvim config over to configz 2023-11-04 14:39:58 +00:00
a90542e59d feat(shell): add the small procfile process manager in tmux
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.
2023-11-04 09:05:08 +00:00
1f8b491825 feat(vim): add go to spec plugin
This will find the spec file that is associated to the current source
file.
2023-11-04 09:02:14 +00:00
77575fc2a7 chore(shell): add git find merge commit
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.
2023-11-04 09:00:05 +00:00
331e2ceaf9 feat(shell): add codeclimate wrapper
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.
2023-11-04 08:54:02 +00:00
c6a4f619bf feat(vim): add some snippets for markdown and reviewing 2023-11-04 08:47:23 +00:00
11dc038c50 refactor(vim): update when the linters run
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.
2023-11-04 07:53:36 +00:00
ba4aca9636 feat(vim): add path completion to cmdline
This is actually quite nice. I use it all the time to be realy lazy and
type commands without capitalization.
2023-11-04 07:49:57 +00:00
6ba33108e2 refactor(vim): don't highlight search results
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.
2023-11-04 07:28:30 +00:00
2cf91cdb16 chore(shell): add a checkpoint commit alias
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.
2023-11-04 07:25:46 +00:00
61a294a255 feat(vim): improve markdown editing with long wrapping lines
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.
2023-11-04 07:20:10 +00:00
a0c35f90b5 refactor(vim): move jest commands to use Run rather than run in process
The jest out put is quite hard to process. This points that were add
into the quickfix list where often incorrect. This is a bit pointless
and I would find myself running it again in the terminal to see all of
the output.

This will have todo until I can find time to create proper test runner,
I really don't like the look of any of the plugins available.
2023-11-04 07:09:50 +00:00
ed39483c40 fix(vim): force solargraph to use bundle exec
Solargraph is best used installed in your Gemfile, this will allow you
to use manage the versions by each project. This will ensure that we are
using the version in your Gemfile, not the one installed globally.
2023-10-15 15:46:01 +01:00
2d7ab84b3a feat(vim): add prr plugin for a better code review experience
Sets code folding of diffs and hunks so we can review hunks on there
own. This is good for larger pull requests, you can focus on the hunk
and not get overwhelmed by the rest of the code.

Adds a go to definition mapping for prr lines. This will allow you to go
straight to the line of code when reviewing a pull request. Seeing the
code in full context is really helpful when reviewing. You are then
there in your editor with all the linters and the LSP.
2023-10-15 15:40:41 +01:00
7e72f1f566 chore(vim): add some erb snippets 2023-08-21 10:30:24 +01:00
835d695ed0 feat(shell): add prr zsh plugin
This will use my directory structure to get the project namespace and
name for prr. This way we dont need to keep providing the extra info.
2023-08-21 10:30:24 +01:00
debce210d5 chore(vim): add binding to open current file in browser
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.
2023-08-21 10:30:24 +01:00
8fac40e82f chore(shell): add adr-tools to path if installed 2023-08-21 10:30:24 +01:00
84d3f4cafb chore: add a couple of rust test snippets 2023-07-17 07:03:53 +01:00
fe3f670b97 chore(vim): remove rescript lsp its all about clojure now 2023-06-02 18:04:21 +01:00
d196ed266b refactor(vim): update the LSP config to better support nvim dev 2023-06-02 18:03:31 +01:00
7940bd4b94 fix(pp): syntax error that was preventing a install
This show how much I am updating the vim plugins as all that. Should
probably put something in place to sort this out.
2023-06-02 18:00:55 +01:00
d23a017232 chore(vim): enable the treesitter playground 2023-06-02 16:57:17 +01:00
c6bf708f47 chore(vim): add treesitter plugin for running jest tests
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
2023-06-02 16:53:15 +01:00
f205f1b2bf chore(vim): add taskfile plugin 2023-06-02 16:52:03 +01:00
23b34a3260 chore: spelling in git commit fix snippet 2023-05-16 19:33:24 +01:00
984aee9a44 fix(vim): split out document highlight and diagnostic float auto commands
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.
2023-05-16 19:27:45 +01:00
ed9b5c7db5 chore(vim): add stylelint for linting scss files 2023-05-16 19:26:27 +01:00
db07fa67ea chore(vim): enable ghost_text in completion 2023-05-16 19:25:51 +01:00
f7821ef42e feat(vim): add completion source name to completion menu
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.
2023-05-16 19:22:45 +01:00
ed100f4824 refactor(vim): make the completion menu wider
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.
2023-05-16 19:19:56 +01:00
762d3d6bb2 fix(vim): add cr to the end of open so it actually works 2023-04-25 21:14:52 +01:00
644a3bdc90 feat(vim): add ++p to the save file command
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`!!
2023-04-25 21:06:05 +01:00
3070940cd1 feat(core): start on the clojure journey
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.
2023-04-25 21:00:23 +01:00
894320aa4d chore(tmux): move themes to base16-tmux
This requires no extra config other than what I already have in the
base-16-shell. If this is installed then its automatically loaded.
2023-04-25 20:56:48 +01:00