branch: externals/jarchive commit 53031eddbbdf9d326543a103de8289b3302a1b9a Author: dannyfreeman <danny@dfreeman.email> Commit: dannyfreeman <danny@dfreeman.email>
Update README Markdown typo causing bad renders Markdown not rendering correctly in sr.ht. Something about the newline deletion and removal caused this --- CHANGELOG.md | 3 +++ README.md | 41 ++++++++++++++++++++--------------------- jarchive.el | 2 +- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7227d927f..01812cda45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log +## 2022-11-14 0.8.0 Release Notes +- Readme Changes + ## 2022-11-13 0.7.0 Release Notes - Add info about jarchive on ELPA diff --git a/README.md b/README.md index 973d065e8c..2b28f186b0 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ Jarchive teaches emacs how to open project dependencies that reside inside jar f # Package status -This package is still under active development. -Right now it should be relatively stable. +This package is still under active development, but should be relatively stable. Any important or breaking changes will now be noted in the CHANGELOG. It current works well with eglot on the Emacs master branch. @@ -14,17 +13,22 @@ See the [CHANGELOG](item/CHANGELOG.md "change log") for more information. # Installing This package is available on [ELPA](https://elpa.gnu.org/packages/jarchive.html "jarchive on elpa"). -There is also an example of a [guix recipe](https://git.sr.ht/~abcdw/rde/tree/90af100a4d70d7016261d39b91b6748768ac374b/rde/packages/emacs-xyz.scm#L330). +There is also an example of a [guix recipe](https://git.sr.ht/~abcdw/rde/tree/90af100a4d70d7016261d39b91b6748768ac374b/rde/packages/emacs-xyz.scm#L330 "jarchive guix recipe"). -In your config: Load and initialize the repository +After installing this package, in your config call `jarchive-setup`: -``` emacs-lisp -(require 'jarchive) -(with-eval-after-load "init" - (jarchive-setup)) +```emacs-lisp +(jarchive-setup) ``` -or interactively, via `M-x jarchive-setup`. +or it can be called interactively, via `M-x jarchive-setup`. + +## Doom Emacs users: Note about when to call `jarchive-setup` + +Some Emacs distributions like [Doom](https://github.com/doomemacs/doomemacs "doom emacs on github") (and many personal configurations), set the `file-name-handler-alist` var to nil on startup, then restore it's value when startup is complete. + +If this is the case for you, `jarchive-setup` should be called AFTER everything is initialized, using `(with-eval-after-load "init" (jarchive-setup))`, where `"init"` refers to your `"init.el"` file. +This package modifies `file-name-handler-alist`, so it relies on it _not_ being reset after `jarchive-setup` is invoked. ## Working with Eglot @@ -32,27 +36,19 @@ Jarchive will open jar dependencies provided to Eglot by lsp servers. If you are using an older version of Eglot, like the melpa version released on [2022-10-20](https://melpa.org/packages/eglot-20221020.1010.el "Eglot Melpa Release 2022-10-20"), then you need to call `jarchive-patch-eglot` after Eglot is loaded, like so -``` emacs-lisp -(with-eval-after-load 'eglot - (jarchive-patch-eglot)) +```emacs-lisp +(jarchive-patch-eglot) ``` This is _not_ required on newer versions of eglot. Installs that are up to date with eglot on [ELPA devel](https://elpa.gnu.org/devel/eglot.html "Eglot ELPA Devel Release") or eglot bundled with emacs 29 will work without patching. This patch function is included so those on older releases of eglot can also take advantage of this package. Eventually it will be removed (with some advanced notice). -## Note about when to call `jarchive-setup` - -Some Emacs distributions like [Doom](https://github.com/doomemacs/doomemacs) (and many personal configurations), set the `file-name-handler-alist` var to nil on startup, then restore it's value when startup is complete. - -If this is the case for you, `jarchive-setup` should be called AFTER everything is initialized. -This package modifies `file-name-handler-alist`, so it relies on it _not_ being reset after `jarchive-setup` is invoked. - # Usage With it enabled, things like this will open up `page.clj` in a read-only buffer. -``` emacs-lisp +```emacs-lisp (find-file "jar:file:///.m2/repository/hiccup/hiccup/1.0.5/hiccup-1.0.5.jar!/hiccup/page.clj") ``` @@ -78,7 +74,10 @@ so that the transient lsp server that is started when opening the file is closed ## Language server compatibility I personally only test this with [clojure-lsp](https://clojure-lsp.io/). -I have heard from other users that it also works with some unspecified java language server. + +I have heard from other users that it also works with some unspecified java language server. +I do know that it does not work with `JDTLS` at them moment, which requires all clients to implement custom language server extensions and a complicated non-standard URI scheme to open files in JARs. + Any language server that provides jar: scheme URIs should be picked up by this package. If it doesn't, please let me know and I'd be happy to take a look. diff --git a/jarchive.el b/jarchive.el index 3913bd6db1..dd8e5659b5 100644 --- a/jarchive.el +++ b/jarchive.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2022 Free Software Foundation, Inc. ;; Authors: Danny Freeman <danny@dfreeman.email> ;; Maintainer: Danny Freeman <danny@dfreeman.email> -;; Version: 0.6.0 +;; Version: 0.8.0 ;; Keywords: tools, languages, jvm, java, clojure ;; URL: https://git.sr.ht/~dannyfreeman/jarchive ;; Package-Requires: ((emacs "26.1"))