Table of Contents
project.el
Emacs modes like eglot
, the first-party LSP integration, rely on project.el to discover workspace roots. PR for JJ project root detecting is merged. but not included in released version(Planed to included on v2.9). Install projectile from git or add below codes on your emacs config.
project.el's heuristics include checks for .git
, which will fail in jj
repositories that are not colocated. This can be addressed by adding ".jj"
to project-vc-extra-root-markers
, e.g.:
(use-package project
:config
(add-to-list 'project-vc-extra-root-markers ".jj"))
Projectile, an alternative package for project management, has built-in recognition of .jj
as being workspace roots already.
ediff
as a merge tool
.jjconfig.toml
[merge-tools.ediff]
program = 'sh'
merge-args = ['-c',
'emacsclient -c --eval "(ediff-merge-files-with-ancestor \"$0\" \"$1\" \"$2\" nil \"$3\")"',
'$left', '$right', '$base', '$output']
jujutsushi
jujutsushi - A emacs interface to jujutsu is an Emacs package for working with jj
from within Emacs.
jujutsu.el
vc-jj
A jj backend for the built-in vc
version control of Emacs. It can be installed from GNU Elpa: https://elpa.gnu.org/packages/vc-jj.html
jj-fzf
Integration
The jj-fzf TUI can be integrated into Emacs in terminal mode, to seamlessly carry out commit operations during Emacs use:
Integrating jj-fzf into Emacs.
The blog article also covers an after-save-hook
hook to keep the jj operation log
updated with new snapshots once Emacs buffers are saved.