I've recently started using my https://github.com/hkjels/data-navigator.el/ package, which I've been refining over the past few days. It closely resembles the inspect-tab from shadow-cljs, although I prefer integrating it directly into my editor rather than using a separate browser window. I invite you to test it out and provide feedback if you see any room for improvements! π
Just pushed a new version. Supports more structures now and is a lot faster. I think it's now close to something that can be released to the wider public π
@a13 I got a friendly note about my comments not being pushed. Sorry about that
yeah, I checked several times and was going to ask you if I'm missing something, np π
a screencast in the readme would be nice to βsellβ it
Good idea
and installation instructions, I guess for now you just byte-compile-and-load it?
I'm thinking to put it on melpa, but for now it's a bit more complicated.
@tatut I suppose it's pretty easy to install with package-install-vc, quelpa or elpaca
(use-package data-navigator
:init
(unless (package-installed-p 'data-navigator)
(package-vc-install
'(data-navigator
:vc-backend Git
:url " "
:branch "main"))))
this should work for recent (28+) versions of EmacsSpeaking of byte-compilation, @hkjels byte-compilation and M-x checkdoc produce a few warnings, mostly about wrong quotation in docstrings and lines longer than 80. Not critical, but definitely a stopper from including MELPA.
Ahh. Thanks π
Btw you can automate these checks using https://github.com/leotaku/elisp-check (I prefer this one, since besides checks needed for MELPA it can do tests and other stuff) and https://github.com/riscy/melpazoid (the official checker) GH actions.
Here's a simple example of using both https://github.com/a13/cider-storm/tree/ci/.github/workflows (yeah, I'm trying to prepare cider-storm for MELPA, and that's hard) π
I've only previously used https://github.com/purcell/package-lint
both actions include package-lint, so no need to include it separately
Ohh. This is great!
Apparently I just broke something before releasing. New version will be pushed soon
btw, do you mind if I add installation instructions to the readme?
Speaking of the websocket part, I think it's worth making a separate package of it (something like data-navigator-ws.el), with an explicit dependency on websocket.el. we'll need a separate recipe for MELPA though, since they don't accept multi-file packages anymore (or something like that)
Yeah, I agree. Its at least my main use of this package
OK. Found the issue. Pushing really soon
Pushed
@hkjels basic #babashka compatibility https://github.com/hkjels/data-navigator.el/pull/5/files?diff=unified&w=1
Ohh. Nice!
Ohh. The doseq shouldn't be necessary any more btw, but I see that's still in the readme
Yeah, it's not needed. Would you like me to remove it in the same PR, or you prefer to do it yourself?
Feel free. I very much appreciate the help π
...and updated
One bit of feedback on the instructions in the README - can you also include the actual names of each command in addition to their keybindings and descriptions? > After loading, use the following keys to navigate: > β’ <return> or <right>: Dive into the selected value if itβs not a leaf. > β’ <backspace> or <left>: Go up one level. > β’ C-f: Apply a filter term to narrow down displayed entries. > β’ X: Clear the data-navigator buffer. > β’ w: Copy the current value to the kill-ring. > β’ o/O: Open the value in a new buffer (same window or other window). > β’ F: Load data from a file (prompts for a filename). > β’ I: Load data from a string input (prompts for data). It would be helpful for users interested in customizing or remapping the keys to know the canonical names of each command (particularly those of us afflicted by a touch of https://github.com/emacs-evil/evil).
That's a good idea
@hkjels plz, take a look at https://github.com/hkjels/data-navigator.el/pull/6 I made the websocket part of the elisp example a separate library. Works for me π
Wow! This is going places π
Function names are now alongside their bindings in the README
Anyone curious about how the Clojure development experience (aka REPL driven development) is like in cider in emacs? Iβve made a video trying my best to show how to get started with cider, maybe you would like to check out and decide to give cider a try eventually;) https://youtu.be/evmRpr_DEBQ?si=2b8jcIisd8bvkvwL