I don't use emacs (RSI issues), however, I can see a couple things
that I would change in this implementation.

Instead of
(re-search-backward ": 0$")

I would use
(re-search-backward ": *0 *$")

Or, even better:

(re-search-backward ": *0 *(NB\..*)?$")

It's fine to use spaces here instead of \s (because J basically
requires spaces in this context) but J places no significance on the
spaces, so the regexp probably should not, either.

Also, I prefer to avoid implementing rules which discourage people
from using comments.

Similarly, I would use

(re-search-forward "^ *) *$"))

again, to match how J works (sadly, J currently does not allow
comments on the ending lines for script blocks).

If we were really ambitious, though, I imagine that we'd grab the
region this way, set the cursor back to where it was, and grab a {{ }}
delimited definition, and if we get both run some tests on them to see
which was the best match (which has a start which is closest to the
cursor, probably).

Thanks,

-- 
Raul

On Tue, Dec 22, 2020 at 7:24 AM emacstheviking <[email protected]> wrote:
>
> Morning.
>
> I wrote this quickly, it works for me, YMMV and its as simple as it needs
> to be, it mostly finds the start and end of the current verb definition.
> The j-mode I have has
> compile line
> compile region
> compile buffer
>
> I offer 'jselverb' which I have bound to C-c C-v as that fits the pattern,
> it's unpolished and care free.
>
> ;; Selects the current verb for C-c C-r to digest
> (defun jselverb ()
>   (interactive)
>   (re-search-backward ": 0$")
>   (beginning-of-line)
>   (set-mark-command nil)
>   (re-search-forward "^)$"))
>
> (defun jeatverb ()
>   (interactive)
>   (save-excursion
>     (jselverb)
>     (j-console-execute-region (region-beginning) (region-end))))
>
> (global-set-key (kbd "C-c C-v") 'jeatverb)
>
> To use it, just be in the verb, hit C-c C-v C-c C-r
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to