Commit graph

75 commits

Author SHA1 Message Date
8679a006f9 feat(emacs): enable ob for evaluating code blocks 2025-02-10 17:56:25 +00:00
a8dfb8fd79 chore(emacs): remove filenames from the org agenda
I don't really care where the todos come from. I only care about the todo
itself and I need to get it done.
2025-01-21 09:39:20 +00:00
e243672164 chore(emacs): install languagetool for spelling and grammar checking 2025-01-21 09:37:47 +00:00
e7a94003ac feat(emacs): add / key binding to search the roam notes
Usually this mapping would be to live grep in the current project. With emacs I
only have one project and thats my notes. The sole purpose of emacs for me is
to organize my self with org

Now this binding search for content in the org notes directory treating that as
the project.
2025-01-21 09:36:28 +00:00
770ca92c2b feat(emacs): add key binding to open the current pull request in an email
By pushing one key you can now open a PR in your browser. This will work from
your list view or the show view. This makes the email workflow in emacs much
faster.
2025-01-21 09:32:44 +00:00
1e6c7f40ef chore(emacs): use FiraCode font to make everything consistent 2025-01-21 09:30:12 +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
Ade Attwood
a533f76a3c refactor(emacs): update terminal prompt and enable goto-address-mode
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.
2022-04-25 19:50:13 +01:00
Ade Attwood
7cb0fc34a8 fix(emacs): misspelling in rjsx-mode making tree sitter not load 2022-04-25 19:45:10 +01:00
Ade Attwood
9baabb8b1b feat(emacs): add html via web-mode to fmt-mode 2022-04-09 07:56:27 +01:00
Ade Attwood
e92e803761 chore: go back to the dark theme 2022-04-09 07:55:38 +01:00
Ade Attwood
5d825446cc feat(emacs): add status icons to compilation notification
When the compilation notification displays it will now show an icon with the
result of the compilation.
2022-04-09 07:50:34 +01:00
Ade Attwood
66bfdd39b7 refactor(emacs): remove doom-themes and to full base16-themes
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
2022-03-13 20:43:53 +00:00
Ade Attwood
70b3d16a4b fix(emacs): sort out language tool this was just not working 2022-03-13 20:42:44 +00:00
Ade Attwood
4760acc065 feat(emacs): rebuild format.el
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
2022-03-13 20:36:11 +00:00
Ade Attwood
2965923990 fix(emacs): limit supper tag to prog-mode
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.
2022-03-13 20:30:06 +00:00
Ade Attwood
ae2de6a719 feat(emacs): go full quelpa
Move all of the package installation from the default package.el to quelpa. This
has the main advantage of being able to update packages better. I have also got
a few package coming from forks and custom repos.

This also removes all of the `ensure t` from the use-package statements as we
have already set `use-package-always-ensure` so its not needed.
2022-02-19 22:15:11 +00:00
Ade Attwood
589237ea50 feat(emacs): implement super tab
This is a port of the original super tab I had in vim. It has a hierarchy of
checks for actions when using the tab so I can use tab for snippet expanding,
expanding emmet expressions.

Currently this dose not support tab for cycling though completions, and I am
sure there will be some bugs in some situations.
2022-02-19 20:43:21 +00:00
Ade Attwood
bb7671734c refactor(emacs): update the development config
Add clangd config args for the LSP config.

Remove all the custom company ordering and overriding to add in the snippets in
to the completion menu. This was only causing issues, so we now have to remember
what the snippets are. We can think about adding in a select snippet command via
counsel or something if this becomes a bigger issue.

Add in compilation notifications via `notify-send` cli tool. This helps when
testing or compiling is taking a long time an I put it into the background. When
it is done we now get desktop notifications
2022-02-19 20:33:28 +00:00
Ade Attwood
8c0ff15ca4 chore(emacs): remove lsp-treemacs package
Treemacs was remove in 08335fb, this package was left in an needed to be removed
2022-02-19 20:30:24 +00:00
Ade Attwood
5c3892b1a6 feat(emacs): add custom projectile project type
Add a new project type for Practically Makefile projects that are using
conventional tools.

This implements a few features all based around PHP and JavaScript projects. The
most notable features are:

- Compilation error detection for Jest JS testing framework
- Compilation error detection for Psalm PHP static analyser
- Alternate file support for Codeception "Cest" files
- JS test commands supporting "Jest"
- PHP test commands supporting "Codeception", "PHP Unit" and "Simple PHP Unit"
- Full project test support detecting the file type and the test command to run
2022-02-19 20:19:43 +00:00
Ade Attwood
55e3e98701 chore: add languagetool back in
I am sure this was installed before, it must have been removed when I started
making the repo public.

Anyway this adds it all back and also sets up the emacs package for using it
when writing.
2022-02-19 14:43:14 +00:00
Ade Attwood
21b38da6e9 chore(emacs): configure puppet by default
Now the puppet packages get loaded by default. I don't really know why it was
not getting loaded, it must have been some time since I have needed to edit any
puppet config
2022-02-19 09:22:30 +00:00
Ade Attwood
73ec9f8f3f chore(emacs): org mode updates
Lots of different updates while I am working on refining the Org workflow
2022-02-15 20:51:38 +00:00
Ade Attwood
d29a601b65 feat(emacs): add command for extracting a patch from emails 2022-02-15 20:47:31 +00:00
Ade Attwood
e5877a73da refactor(emacs): ui updates
Moves the setting of the font size onto a function so it can be used
dynamically. This is for when I am moving emacs across monitors with different
DPI's.

Also move base-16-themes to my fork
2022-02-15 20:43:06 +00:00
Ade Attwood
5e7c6e587f chore(emacs): remove ivy-rich package 2022-02-15 20:42:06 +00:00
Ade Attwood
b94a324c40 chore(emacs): add c style copyright header 2022-02-15 20:37:06 +00:00
Ade Attwood
8966cd6155 feat(emacs): use markdown-mode when using edit-server
This is mostly used when editing GitHub and GitLab comments that boath support
markdown. This allows me to have the correct highlighting and snippet support
2022-02-15 20:34:18 +00:00
Ade Attwood
08335fba6a refactor(emacs): replace treemacs with neotree
Neotree has a much smaller foot print for me. This removes a lot of packages
that were not getting uses to intergate it with the lsp and projectile.
2021-11-21 16:49:47 +00:00
Ade Attwood
e4ca0d9ff1 chore(emacs): add vue mode 2021-11-21 16:46:56 +00:00
Ade Attwood
ec7c111e2f feat(emacs): update sh-mode
This adds shellcheck for creating better scripts and bats mode for testing
support.

It also added .env files to the mode list so I get highlighting in .env files
2021-11-21 16:26:25 +00:00
Ade Attwood
0c92f447e8 chore(emacs): big refactor of org-mode
This removes all of the boiler plate code that was copied when fist moving away
from spacemacs and taken from the emacs from scratch config.

There is some inspiration about capturing notes from org-roam and putting them
into a directory for filing before they get put into the wiki.

This is the first move to start managing my notes / life with org-mode and its
started off really nicely. I think this will keep evolving and we can see where
it goes.
2021-11-21 16:21:21 +00:00
Ade Attwood
92c00ca15c refactor(emacs): swap cue for jsonnet
This is the language we are doing mode configuration in at work now. Cue was
nice but still ab bit new and jsonnet has been around for a lot longer. Cue also
works best with go but we are not doing any of that at work so jsonnet was the
winner.
2021-11-21 14:59:56 +00:00
Ade Attwood
9f7d45b489 feat(emacs): add psalm integration for php-mode
Add the flycheck-psalm package and also add `.phpstub` files to be treated as
php files so we get all of the lsp and and syntax highlighting
2021-11-21 14:57:14 +00:00
Ade Attwood
5de5d36cab feat(emacs): add tree-sitter for highlighting
This is mainly for jsx where the base emacs packages dont really do a good job
especially will typescript tsx files.

This is also giving it a go in php mode where I was getting some funky things
happening in doc blocks.
2021-11-21 14:53:45 +00:00
Ade Attwood
0417e30dc7 feat(emacs): add edit-server package for editing in the web browser
When editing code comments on git platforms like github the input is not very
good when trying to input code. A good example of this is when trying to insert
a tab indent and it will tab away from the input you are typing into.

The edit-server package allows you to open an emacs buffer to edit you comment
or issue into. This will solve the tab issues and give you all of your editor
comforts like auto closing brackets and snippets.
2021-11-21 14:43:03 +00:00
Ade Attwood
f8f8203dac chore(emacs): remove custom company sorting 2021-11-21 14:42:18 +00:00
Ade Attwood
aa5ef6ec72 feat(emacs): set the completion in emacs to scroll
When running the compile command in emacs the buffer dose not scroll with the
output by default.

This now set it to follow the output so you can see the full output as it
happened not just the final result.
2021-11-21 14:39:12 +00:00
Ade Attwood
ddb7febaa9 chore(emacs): disable lock files 2021-11-21 14:37:08 +00:00
Ade Attwood
cb1ecc7478 chore(emacs): setup flycheck next checkers for lsp-mode
When using lsp-mode with flycheck it hijacks all of the checkers that have been
defined for all of the languages. When added other checkers they never get used
because they are all overridden by lsp-mode.

This adds a function so we can define checkers per mode then we can have lsp and
another checker that is specific for the language
2021-11-21 13:43:39 +00:00
Ade Attwood
99dd45aa08 chore(emacs): add key binding for org-capture 2021-11-21 13:33:04 +00:00
Ade Attwood
0042a84112 feat(emacs): add fmt mode
This is a format on save code formatter for multiple languages. It is based on
prettier.el but is using a custom cli tool for formatting.

This is the emacs port of format.vim a plugin I created to do formatting in the
same way but for vim.

See: site-modules/core/files/vim/plugin/format.vim
2021-11-21 13:24:29 +00:00
Ade Attwood
0cf4568853 feat(emacs): add zoekt code search integration
This integrates zoekt code search into emacs and ivy with a heavy inspiration on
`counsel-ag`

See: https://github.com/google/zoekt
2021-11-21 13:18:03 +00:00
Ade Attwood
a913143ee8 chore(emacs): fork the base16 theme
This is so we can add and develop some of the missing features of the
theme. After using them for a bit I will start to submit them back upstream in a
PR
2021-11-21 12:41:27 +00:00
Ade Attwood
086c913dbc chore(emacs): update ui when using the GUI 2021-11-21 12:40:48 +00:00
Ade Attwood
653c7af2ae fix(emacs): update notmuch integration
- Pin notmuch to the version that comes with Ubuntu and is installed with apt
- Add org-move capture integration
- Add unread message filter
2021-11-21 12:36:45 +00:00
Ade Attwood
e8bbbae10a feat(emacs): add c and c++ language integration 2021-11-21 12:31:48 +00:00