Commit graph

364 commits

Author SHA1 Message Date
1e6c7f40ef chore(emacs): use FiraCode font to make everything consistent 2025-01-21 09:30:12 +00:00
6022083000 chore(vim): format csharp files with the lsp
This will be using `dotnet format` under the hood and take any settings from
the editorconfig. The advantage of this is it will only do the file, with
`dotnet format` you need todo the hole solution.
2025-01-21 08:24:34 +00:00
c482f7a612 chore(nu): automatically set the node_modules bin dir on cd
When we are moving around the file system I always want to be able to use the
locally installed executables from my node modules.

Sometimes versions of programs like prettier have different outcomes. I always
want to be using the local version rather than the system installed version.
2025-01-21 08:22:40 +00:00
d7a955f103 chore(vim): remove eslint flags unstable_ts_config
This is no longer needed, in the eslint version we are using at work this is
now stable.
2025-01-21 08:19:18 +00:00
de1aefac38 chore(shell): add module load the rvm env into nushell
This is a real hack but, it works. Because nushell is not posix rvm will not
natively work. This uses a login sub shell to change the ruby version with
bash, it then get the all the relevant environment variables and loads them
into the nushell environment.
2025-01-11 07:23:58 +00:00
0c2e66214e chore(configz): create module to install fonts 2025-01-10 20:28:37 +00:00
b68ba5eb5e chore(term): use the FiraCode font 2025-01-10 20:28:00 +00:00
ac2b15e673 fix(vim): update lsp config to fix deprecations
Nvim lsp has changed the way the config works. This is now on all the versions
on nvim I am using. The main one is in tumbleweed this is relatively up to
date.

The sign_define has also moved into the diagnostic config.
2024-12-30 13:15:37 +00:00
26ae32de82 fix(vim): ensure we don't get errors if we are on old ivy 2024-12-30 13:15:37 +00:00
bbdcd42b27 feat(vim): add csharp snippets
This add most of the snippets I used to have. It implements a custom
env_namespace for adding in the namespace of the file based on where it in the
file tree.
2024-12-30 13:15:37 +00:00
1a9492c0ef feat(core): start the windows support 2024-12-30 13:15:37 +00:00
4530bdfb56 fix(vim): start ts_lsp in monorepo
When you are in a monorepo you don't always have a tsconfig in the root. You do
however have a yarn.lock. This will now start ts_ls when it finds a yarn.lock
in the root of the repo.
2024-12-17 11:13:37 +00:00
dc23131046 feat(nu): setup nushell and start off the config
This is some investigation in to nushell will work. I will be looking to use
this cross platform, as zsh will not work on windows.

Adds some of the core modules so I don't loose my mind having to relearn mussel
memory. The goal of this is to replicate my use of oh-my-zsh, I think this will
take some time, I have sunk years into the zsh config. The aliases will be the
same, the GOPATH project structure will be replicated and the dir hooks will be
implemeted so my PATH gets setup just as I like it.
2024-12-08 10:55:05 +00:00
2755f69cd8 style(vim): format the lsp config 2024-11-28 18:18:02 +00:00
a7a99e16d0 chore(vim): add some ivy key mappings for testing
This is not really needed for my config. Its there so we can make sure this
config works for my config when developing ivy.
2024-11-28 18:15:40 +00:00
8000173917 refactor(vim): update the diagnostic sign icons
This uses different icons to try and make things look a bit more cool. The look
of vim is not something I have really been focused on however, I think it may
be time to spice things up.
2024-11-28 18:13:02 +00:00
cf51aa4842 feat(vim): add the deno lsp to the config
This is a bit tricky due to the filetype of deno being typescript. The
typescript server automatically starts on this filetype.

For now this looks in the root of the project to see if there is a deno.json or
package.json. Based on this, it will pick what one to use.
2024-11-28 18:09:51 +00:00
7882a3cbe2 feat(wezterm): add <ctrl-bb> binding to go to the previous tab
When developing I often want to quickly swap between vim and a terminal. The
vim built in terminal does not really work for be. I prefer to use a proper
terminal.

Now you can quickly swap by pressing <LEADER-b> this is the same kind of
workflow I have in vim by using the <LEADER-TAB>
2024-11-28 18:05:58 +00:00
ff6fd2b144 feat(sapling): add ddd alias for diffing like ... diff from git
When using sapling I often use `HEAD...origin/main` to diff the current
changes. This replicates this so you can diff a commit with other changes and
or merge commits in it.
2024-11-28 18:01:15 +00:00
6da50c9bac chore(vim): move ferret to use the main branch
This is so we can keep up with updates.
2024-11-28 17:52:31 +00:00
d23aa40709 feat(configz): move the dotfiles script to only use configz
Soon we will probably be able to remove all the puppet stuff. I don't even have
it installed on new machines anymore.

You can now list and apply single configz to target updates or install separate
parts on different machines.
2024-11-28 17:51:47 +00:00
fb1d4a8e03 fix(vim): move vim-tmux-navigator to an opt pluing
I am currently using the wezterm all the time now. This is working really well
and there should be no need for tmux. One day it may get removed, for now this
can be loaded when we need it.
2024-11-28 17:48:55 +00:00
f2ec3982d2 fix(emacs): ensure org-agenda uses the general leader keybindings
When in org agenda mode you can't use the <space><space> leader to access all
the key beginning that has been setup up by general. I use this quite a lot to
quickly navigating to other notes or the email inbox.

This adds a hook to run after org agenda so the evil mode is normal not emacs.
This will allow the general keybindings to be used in that buffer.
2024-10-10 07:52:17 +01:00
843767fdb8 feat(emacs): move org tasks to org roam
Moves all of the tasks from Todo.org into any org-roam note file. All tasks
will then show up in the agenda and be able to be scheduled and searched just
like any other task we currently have in the Todo.org file. This is based of
the task management blog below. It will add a filetag to any file that has
tasks in it. This will then use only those files to build the org agenda so it
dose not have to search though every file in the roam database.

https://d12frosted.io/posts/2021-01-16-task-management-with-roam-vol5.html

The main difference from this blog is that it uses the `tasklist` filetag
rather than `projects` as the blogs. This makes much more sense for my use case

It also moves all the capture targets to the roam dailies so my main workspace
for the day is the daily note. This also moves the refile targets to be the old
Todo.org file. I will still be using this for the main backlog and any tasks
that don't need to be complete on that day. The current workflow I will be
using is capturing into the daily note. If I won't complete it that day, it
will either move to the next day or be refiled to be done on another day.
2024-10-10 07:47:28 +01:00
b095833f8e refactor(emacs): move emacs config to be really minimal
Yea thats it, we are bringing back the use of emacs. This is very much the "why
choose" way and using the correct tool for the job.

I have now gone back to emacs for all the productivity / notes related stuff.
Code will still continue to be in neovim. The developer experience nvim brings
is really nice, the community around plugins is amazing, you can really get
your work done fast. What it does not have is org-mode, this is the feature of
emacs and I would like to go back to using it.

Emacs has now replaced todoist, obsidian and gmail web client. Singularly, I
think these tools are on par if not better sometimes that the emacs
replacement. However, together with org-link, this is where the power is. Being
able to quickly capture tasks that link back to emails is supper powerful.

The org-mode stuff is generally the same. It uses evil mode, so my fingers
don't get lost, Doom to make it look good. All the key bindings are the same,
it's just ripped out all the code and language support. The only code related
package is company so I can get completion on the roam links just like you do
in obsidian.

Email is powered by notmuch. I said this replaces the gmail web client,
however, it's really a couple of other too. The main benefit over have this is
you can have one inbox for multiple accounts. Having a single list for your
inbox is a grate way to keep track of everything. This will org capture and org
links works perfectly with the inbox zero flow, having the ability to file
things away not lose track of them is really nice.
2024-09-24 20:27:20 +01:00
22eda7e6ed feat(vim): use the lsp to format f# files
For formatting f# there really is only one tool, fantomas. The CLI for fantomas
has no input and will only do files. Ionide has built in support for fantomas,
we need some extra config to make this work because right now we are only using
Neoformat for formatting.

This updates the formatting function to format with the lsp only for f# files.
Anything else it will fall back to usign Neoformat. I am hoping that there will
not be many cases of this and we can continue to use Neoformat.
2024-09-24 19:53:46 +01:00
63edfe28ce fix(vim): reformat the linters and add extra eslint flags
Removes the complete override to the linters and add extra flags to the
existing args. This will now automatically get any updates made to the plugin
linters.

This also add the `unstable_ts_config` to the eslint command so we can use
typescript configs with eslint 9. I don't really know how this will affect BC
with version 8, I will have to cross that bridge when we come to it. ATM this
is good for daily use of version 9.
2024-09-12 16:31:27 +01:00
bed0f97bd7 feat(shell): add sa alias for sl amend 2024-09-04 19:12:55 +01:00
3f2964cfcb feat(vim): display clippy diagnostics on save 2024-09-04 19:11:57 +01:00
9ff18b1688 feat(vim): setup ivy.nvim in the config
This was an update that now it does not get configured by default you need to
call the `setup` function to make it work.

See: https://github.com/AdeAttwood/ivy.nvim/pull/81
2024-09-04 19:10:24 +01:00
7603040373 feat(bin): update pf script to use wezterm tabs
When the move from tmux I can no longer use pf to start processes from a
Procfile in a new session. This will do basically the same if we are not in a
tmux session and start all the processes in wezterm tabs in the same workspace.
This currently does not support closing the tabs, if this needs to be done you
can kill the hole terminal and start it again.

This also updates the script so you can pass in a file and it will use that
file. Previously it was hardcoded to `Procfile.dev`, now this is the default
however, can be overridden
2024-09-04 19:06:39 +01:00
6b939f0486 feat(term): move to wezterm mux from tmux
So this is the first commit where we are starting to migrate from tmux.
Right now I'm not sure how this will go, every other attempt has not
lasted very long.

This does support all the features I am using in tmux though. TBH most
of the stuff in the tmux.conf wezterm does by default. For example, the
pain numbers start at 1 not 0.

This implements a fork of tmux navigation, the plugin I have been using
in vim since like.... day one.
2024-09-04 18:20:25 +01:00
ac75f42cfb chore: add github git auth helper
Adds the auth helper to the config. This is used mainly for sapling so
we can push and pull to git repos. I need to run this after each time I
configure the system because this file is a template not a symlink

This was originally added with the `gh` cli tool running the following
command:

```bash
gh auth setup-git
```
2024-07-04 21:34:33 +01:00
52a96193ad refactor(shell): move from docker-compose to docker compose
This has been on the cards to quite a while. I have been getting
reminders from work that I need to upgrade. I have also just had an
issue on one of my servers that resulted in using old versions and
silently failing.
2024-07-04 16:24:53 +01:00
4354948d88 refactor(vim): remove the ts-jest plugin
This was a plugin I had started writing and using for running jest tests
in a nvim buffer. This has now been split out into its own dedicated
plugin.

See: https://github.com/adeattwood/spec.nvim
2024-06-14 18:13:38 +01:00
0e90eac407 fix(git): navigation in diffs
When using delta diff, you could not navigate the hunks of the diff. It
would only jump between file changes. This was due to the use of the raw
hunk header. It must not be included in the default `navigate-regex`.

I have updated the regex so it includes the default hunk patter so now
when you have in a diff and press `n` it will navigate the hunks as well
as the file changes.
2024-06-14 18:09:56 +01:00
e1fc3341e6 fix(sapling): reorder the nvim diff def
When using nvim as a merge tool I had the files in the wrong order. It
was very confusing not having the local version in the middle and the
base and remote on ether side.
2024-06-14 18:08:19 +01:00
6cbd7eb9ae feat(vim): add nvim-treesitter-textobjects
I have been wanting to play with this plugin for a long time now. I have
a minimal config that will give me most of what I need. Moving
parameters and arguments is a big one. Also selecting parameters, this
will also include the type definition so its much more powerful than
selecting words.

Jumping to functions has also been included, right now I am not sure how
much that will be used. My muscle memory is very used to <C-d> and <C-u>
for paging.
2024-06-14 18:03:07 +01:00
2f2e59a8c3 chore(vim): remove git plugins
Now that I am using sapling more, I am using them less. It has got to
the point where its not worth having them installed.
2024-06-08 19:43:32 +01:00
7dd2677d24 fix(tmux): set the actual name to the tmux plugin
This swap over should have really been tested more before pushing into
mainline. This is hopefully the last one we need to fix.

When I was playing around with the plugin I used a `git clone` this have
it the name of the repo "tmux" that was not very helpful when looking at
the plugins. I then renamed it when adding it to the dotfiles install.
However, I never changed the name in the config to load the plugin from
a different place.
2024-06-08 18:06:34 +01:00
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
05e16a3226 fix(tmux): the tmux theme branch is develop not main 2024-06-08 14:58:28 +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
d72d7755ac feat(vim): add baleia.nvim plugin to color buffers
This plugin will allow you to color a buffer with ansi characters. This
is good for when you want to dump the output of a command into a buffer,
you can do it with nice colors now too.

Sapling.nvim uses this for the log buffers. That is not installed with
our dotfiles, I will someday have a sapling provider for installing and
keeping plugins updated, for now I will keep it updated manually for
now.
2024-06-08 14:27:04 +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