Re: Yet another browser extension for capturing notes - LinkRemark
Not sure if it helps, but you could also use the w3m browser's mentality of just keeping an HTML file that contains all of your bookmarks. I'm sure there's probably even a way to use 'eww' in the same fashion too. Maybe even making your own personal wiki of a webring of sorts would help too. I don't personally bookmark anything anymore but just store links on a webring on my site. Hope this helps. Sam On Mon, Jan 17, 2022, at 8:03 PM, Samuel Wales wrote: > my amazon example was silly and confusing. the point isn't shopping > for something; it's anything. science papers, news outlets, nerd > blogs. > > On 1/16/22, Samuel Wales wrote: > > more below. > > > > On 12/26/20, Maxim Nikulin wrote: > >> On 26/12/2020, Samuel Wales wrote: > >> > >>> [... i can imagine great things possible with such extensions. for > >>> example, you could have sets of tabs, selected by right click in > >>> firefox, to save to a bunch of org entries. then you could load that > >>> particular set of entries into firefox whenever you want. and you > >>> could keep notes on each page and move the entries wherever you want. > >>> this would be useful for such things as "i am researching rice > >>> cookers; these are my tabs, but i don't want them cluttering firefox > >>> and i want them with my org notes and to make notes on them and will > >>> re-load them into firefox when i want to revisit".] > >> > >> It should be possible since some tab management extension were used in > >> mozilla to evaluate if webextensions are mature enough and if support of > >> XUL add-ons could be dropped. On the other hand do not expect such > >> feature soon. A kind of semi-blocker is absence of automatic tests to > >> run before every release, and it will require a lot of time. > > > > interesting. i do note tab selection features in recent firefox-esr > > and i was just assuming something like that. > > > >> > >> In the meanwhile, have you looked at the following comment? > >> https://github.com/sprig/org-capture-extension/issues/12#issuecomment-323569334 > >> alphapapa commented Aug 20, 2017 > >> > >>> You can do this with the "Copy all URLs" extension (ID: > >>> djdmadneanknadilpjiknlnanaolmbfk). Use this as the custom format (note > >>> the linebreak): > >>> > >>> [[$url][$title]] > >> > >> I am almost sure that similar extension should exist for Firefox as well. > > > > i think this is for copying all tabs, not selected ones. so a > > workaround for my idea would be to have a fresh firefox window > > dedicated to rice cookers and then save them all. bit it does not > > save over existing canonical location for each url or similar. > > > > which would be needed for my idea so as to not have duplicates etc. > > > > also i think this extension does not exist any more in firefox. i > > used to use it for storing as org links. but it was just to store > > links in case firefox screwed up session restore. which it usually > > does. for that purpose, i use one that does not save as orglinks. > > > >> > >> Some points should be clarified in my opinion > >> > >> - Do you expect that metadata should be captured in addition to URLs and > >> titles? Browsers can unload some tabs making page content unavailable. > > > > i wouldn't need this i think. i'd want page title, just as in > > ordinary org links, but in principle that can be assumed from the > > existing org entry if exists, and if not exists and you are capturing, > > the page is already loaded. so i think not a metadata issue. > > > >> - Are you going to capture reviews of "rice cookers" that could be > >> considered as ordinary pages or you are going to save items from online > >> stores? I do not current state of affairs but I have heard about some > >> activity for special metadata that allows search engines to display > >> products in a special way. Could you inspect head element of pages in > >> your favorite stores contains desired metadata using page source or > >> inspect element tools? > > > > my web knowledge is too limited to understand your question, but i am > > just hoping it would capture ordinary amazon links, review sites, and > > so on. and i never use js if i can avoid it so i'm expecting pretty > > normal website stuff i think. so i'm flexible. > > > > [of course, amazon per se links might need cleaning or uniquification > > of some type for finding the version in org maybe, or maybe for > > improving privacy by removing amazon's data about you in the url, but > > that might not even need any special amazon link knowledge. > > [fanciness might look for the amazon id, if implementer willing or > > somethign exists for that.]] > > > >> - Should tab group be captured as single Org heading or it should be a > >> tree with a section per tab? I am not sure that capture will have no > >> problem with subtree. Certainly Emacs interface for org-protocol + > >> capture are not suitable for sending each tab as a separate link. > >> Another option is to create nested
Re: Yet another browser extension for capturing notes - LinkRemark
my amazon example was silly and confusing. the point isn't shopping for something; it's anything. science papers, news outlets, nerd blogs. On 1/16/22, Samuel Wales wrote: > more below. > > On 12/26/20, Maxim Nikulin wrote: >> On 26/12/2020, Samuel Wales wrote: >> >>> [... i can imagine great things possible with such extensions. for >>> example, you could have sets of tabs, selected by right click in >>> firefox, to save to a bunch of org entries. then you could load that >>> particular set of entries into firefox whenever you want. and you >>> could keep notes on each page and move the entries wherever you want. >>> this would be useful for such things as "i am researching rice >>> cookers; these are my tabs, but i don't want them cluttering firefox >>> and i want them with my org notes and to make notes on them and will >>> re-load them into firefox when i want to revisit".] >> >> It should be possible since some tab management extension were used in >> mozilla to evaluate if webextensions are mature enough and if support of >> XUL add-ons could be dropped. On the other hand do not expect such >> feature soon. A kind of semi-blocker is absence of automatic tests to >> run before every release, and it will require a lot of time. > > interesting. i do note tab selection features in recent firefox-esr > and i was just assuming something like that. > >> >> In the meanwhile, have you looked at the following comment? >> https://github.com/sprig/org-capture-extension/issues/12#issuecomment-323569334 >> alphapapa commented Aug 20, 2017 >> >>> You can do this with the "Copy all URLs" extension (ID: >>> djdmadneanknadilpjiknlnanaolmbfk). Use this as the custom format (note >>> the linebreak): >>> >>> [[$url][$title]] >> >> I am almost sure that similar extension should exist for Firefox as well. > > i think this is for copying all tabs, not selected ones. so a > workaround for my idea would be to have a fresh firefox window > dedicated to rice cookers and then save them all. bit it does not > save over existing canonical location for each url or similar. > > which would be needed for my idea so as to not have duplicates etc. > > also i think this extension does not exist any more in firefox. i > used to use it for storing as org links. but it was just to store > links in case firefox screwed up session restore. which it usually > does. for that purpose, i use one that does not save as orglinks. > >> >> Some points should be clarified in my opinion >> >> - Do you expect that metadata should be captured in addition to URLs and >> titles? Browsers can unload some tabs making page content unavailable. > > i wouldn't need this i think. i'd want page title, just as in > ordinary org links, but in principle that can be assumed from the > existing org entry if exists, and if not exists and you are capturing, > the page is already loaded. so i think not a metadata issue. > >> - Are you going to capture reviews of "rice cookers" that could be >> considered as ordinary pages or you are going to save items from online >> stores? I do not current state of affairs but I have heard about some >> activity for special metadata that allows search engines to display >> products in a special way. Could you inspect head element of pages in >> your favorite stores contains desired metadata using page source or >> inspect element tools? > > my web knowledge is too limited to understand your question, but i am > just hoping it would capture ordinary amazon links, review sites, and > so on. and i never use js if i can avoid it so i'm expecting pretty > normal website stuff i think. so i'm flexible. > > [of course, amazon per se links might need cleaning or uniquification > of some type for finding the version in org maybe, or maybe for > improving privacy by removing amazon's data about you in the url, but > that might not even need any special amazon link knowledge. > [fanciness might look for the amazon id, if implementer willing or > somethign exists for that.]] > >> - Should tab group be captured as single Org heading or it should be a >> tree with a section per tab? I am not sure that capture will have no >> problem with subtree. Certainly Emacs interface for org-protocol + >> capture are not suitable for sending each tab as a separate link. >> Another option is to create nested lists, anyway org formatter in my >> extension need improvements. Are you expecting headings subtree or >> nested lists? > > the status quo is that there is nothing, so using lists would be a > huge improvement and work great. but fanciness by using org sections > if poss [i assume this means header and metadata and content and maybe > descendents] could be more flexible. > >> >>> [now if i can only debug the extra-blank-lines-in-capture problem.] >> >> Fully agree that it is really annoying. It is among high priority items >> in my TODO list. > > we might be talking about different thinks. i am referring to > something in org that adds
Re: Org Syntax Specification
Hi Timothy, I have attached a patch with some modifications and a bunch of comments (as footnotes). More replies in line. Thank you for all your work on this! Tom > Marking this as depreciated would have no effect on Org’s current behaviour, > but we could: > > Mark as depreciated now-ish > Add a utility to convert from TeX-style to LaTeX-style > Add org lint/fortification warnings > A while later (half a decade? more?) actually remove support In favor of this. There are good alternatives for this now. > The other component of the syntax which feels particularly awkward to me is > source block switches. They seem a bit odd, and since arguments exist, > completely redundant. Extremely in favor of removing switches. There are so many better ways to do this now that aren't like some eldritch unix horror crawling up out of the abyss and into the eBNF :) From 3527331f02e593ec6ba6cb4c8bde3f64de3ad216 Mon Sep 17 00:00:00 2001 From: Tom Gillespie Date: Mon, 17 Jan 2022 19:34:21 -0500 Subject: [PATCH] Tom's comments and modifications to org syntax edited I removed any mention of markdown because it is a distraction in this document and is not something we want anyone attending to here. I change "top level section" to "zeroth section" which I think is more consistent terminology because level is often used to refer to the depth of parsing at any given point in the file and the top level refers to anything that can be parsed without context. Zeroth makes it clear that we are talking about the actual zeroth occurrence of a section in a file/buffer/stream. --- dev/org-syntax-edited.org | 399 +++--- 1 file changed, 331 insertions(+), 68 deletions(-) diff --git a/dev/org-syntax-edited.org b/dev/org-syntax-edited.org index c3259473..2e99070d 100644 --- a/dev/org-syntax-edited.org +++ b/dev/org-syntax-edited.org @@ -19,9 +19,7 @@ under the GNU General Public License v3 or later. Org is a plaintext format composed of simple, yet versatile, forms which represent formatting and structural information. It is designed to be both intuitive to use, and capable of representing complex -documents. Like [[https://datatracker.ietf.org/doc/html/rfc7763][Markdown]], Org may be considered a lightweight markup -language. However, while Markdown refers to a collection of similar -syntaxes, Org is a single syntax. +documents. This document describes and comments on Org syntax as it is currently read by its parser (=org-element.el=) and, therefore, by the export @@ -32,14 +30,13 @@ framework. ** Objects and Elements The components of this syntax can be divided into two classes: -"[[#Objects][objects]]" and "[[#Elements][elements]]". To better understand these classes, -consider the paragraph as a unit of measurement. /Elements/ are -syntactic components that exist at the same or greater scope than a -paragraph, i.e. which could not be contained by a paragraph. -Conversely, /objects/ are syntactic components that exist with a smaller -scope than a paragraph, and so can be contained within a paragraph. - -Elements can be stratified into "[[#Headings][headings]]", "[[#Sections][sections]]", "[[#Greater_Elements][greater +"[[#Elements][elements]]" and "[[#Objects][objects]]". Elements are +syntactic components that have the same priority as or greater +priority than a paragraph. Objects are syntactic components that are +only recognized inside a paragraph or other paragraph-like elements +such as heading titles. + +Elements are further divided into "[[#Headings][headings]]", "[[#Sections][sections]]"[fn::sections are not elements], "[[#Greater_Elements][greater elements]]", and "[[#Lesser_Elements][lesser elements]]", from broadest scope to narrowest. Along with objects, these sub-classes define categories of syntactic environments. Only [[#Headings][headings]], [[#Sections][sections]], [[#Property_Drawers][property drawers]], and @@ -52,7 +49,12 @@ elements that cannot contain any other elements. As such, a paragraph is considered a lesser element. Greater elements can themselves contain greater elements or lesser elements. Sections contain both greater and lesser elements, and headings can contain a section and -other headings. +other headings. [fn:tom2:I would not discuss strata here because it is +not related to the syntax of the document. It is related to how that +syntax is interpreted by org mode. The strata are nesting rules that +are independent of the syntax, and discussing that here in the syntax +document is confusing, because the nesting is not something that can be +parsed directly because it depends on the number of asterisks.] ** The minimal and standard sets of objects @@ -60,25 +62,33 @@ To simplify references to common collections of objects, we define two useful sets. The /<<>> of objects/ refers to [[#Plain_Text][plain text]], [[#Emphasis_Markers][text markup]], [[#Entities][entities]], [[#LaTeX_Fragments][LaTeX fragments]],
Re: [PATCH] ob-plantuml: Allow setting PlantUML args for jar file
On 16-Jan-22 08:53, Max Nikulin wrote: Dejan, have you tried :java or :cmdline header arguments? Hi Max! Yes, I have tried with those header arguments and they naturally work. Maybe I should've mentioned that. But, since ob-plantuml already had variable for arguments for executable it fells natural to me to have customizable variables for when using jar. These headers are of course easier, but the user would have to write them on each source block to achieve something that should be globally customizable (like charset). On 15-Jan-22 07:20, Ihor Radchenko wrote: See the attached patch. It appears that we can simply carry over the executable args to jar (but please test it on other systems!) I have tested the patch on my machine and it works fine. I have set the new/renamed variable like this: (setq org-plantuml-args (list "-headless" "-charset" "UTF-8")) and tried the same example: #+BEGIN_SRC plantuml :file ./test.png A -> B: Hello ∧ #+END_SRC and it renders correctly. However, I have a couple of concerns. I second the concern that Max stated: Is there a case when some arguments are suitable for dedicated binary but should be avoided for jar (when a user has both executable from system package and manually downloaded jar having newer version)? It may be a reason to have separate variables (or header arguments). I believe it is better design decision to separate arguments for executable and jar. Since we are making jar arguments customizable, we should think about adding java arguments customizable (also mentioned by Max!). This line in patch: + "-Djava.awt.headless=true" can be also added to a separate variable. Lastly, there is a typo in the patch: +** Removed or renamed functions and variables +*** =org-plantump-executable-args= is renamed and applies to jar as well + +The new variable name is =org-plantump-args=. It now applies to both +jar PlantUML file and executable. Word plantump should be plantuml I guess. :-) Thanks all, -- Dejan Josifović | Дејан Јосифовић Software engineer | Софтверски инжењер https://theparanoidtimes.org () ascii ribbon campaign /\ www.asciiribbon.org OpenPGP_signature Description: OpenPGP digital signature
Re: latex block tikz to svg
Hi Edouard, Edouard Debry writes: > I would like to find a way to generate svg images from latex src blocks > (using tikz) which works and is compatible with default orgmode settings > for latex export (at least does not break it) > > Did you experience such issues ? do you have some workings settings and > examples ? I googled several times "org latex block tikz svg", but it is > difficult to guess how relevant are the elements found, some of them > seems quiet outdated. Hence my question on this mailing list I've done some quick tests with your example block. I don't know if I'm wrong, but I think the problem is on line 27 of `org-babel-execute:latex': ((string= "svg" extension) I don't know if this should be considered an Org bug, but it's clear that if the svg extension is detected in :file, the ':imagemagick yes' option is ignored, and a type of preamble is generated that fails in pgfsysdriver when compiling the temp tex document: \documentclass[preview]{standalone} \def\pgfsysdriver{pgfsys-tex4ht.def} If I replace the above line with this conditional: ((and (string= "svg" extension) (not imagemagick)) then the imagemagick option is taken into account: it creates correctly the pdf and then converts it to svg with 'convert' imagemagick program. I did have to remove this line though: #+HEADER: :imoutoptions -geometry 400 :iminoptions -density 600 otherwise, the conversion produced a dark image. Best regards, Juan Manuel
latex block tikz to svg
Hello, I experience some difficulties to export latex src block consisting of tikz code to svg. Here is for example the simple code I try to run with `C-c C-c` : <==> #+HEADER: :file test1.png #+HEADER: :imagemagick yes #+HEADER: :exports results #+HEADER: :results output silent graphics file #+HEADER: :headers '("\\usepackage{tikz}") #+HEADER: :fit yes :imoutoptions -geometry 400 :iminoptions -density 600 #+begin_src latex \begin{tikzpicture} % \draw[->] (-3,0) -- (-2,0) arc[radius=0.5cm,start angle=-180,end angle=0] (-1,0) -- (1,0) arc[radius=0.5cm,start angle=180,end angle=0] (2,0) -- (3,0); \filldraw (-1.5,0) circle[radius=1mm]; \filldraw (1.5,0) circle[radius=1mm]; \end{tikzpicture} #+end_src <==> First of all, for this to work I have to change `org-latex-pdf-process` to ("latexmk.exe -pdf -f %f -cd %o"), which unfortunately breaks the latex to pdf export of org files (C-c C-e l o/p). Then, it works when image file format is png. However, a close look of the pdflatex output shows this error : <> === TeX engine is 'pdfTeX' Latexmk: All targets (latex-JEShjO.pdf) are up-to-date Rule 'pdflatex': File changes, etc: Changed files, or newly in use since previous run(s): 'd://Documents/utils/texlive/2021/texmf-dist/tex/latex/tools/.tex' Run number 1 of rule 'pdflatex' Running 'pdflatex -shell-escape -synctex=1 -interaction=nonstopmode -recorder "d:\xx\Documents\utils\texlive\2021\texmf-dist\tex\latex\tools\.tex"' Latexmk: applying rule 'pdflatex'... This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/W32TeX) (preloaded format=pdflatex) \write18 enabled. entering extended mode (d:/xx/Documents/utils/texlive/2021/texmf-dist/tex/latex/tools/.tex LaTeX2e <2021-11-15> patch level 1 L3 programming layer <2022-01-12> File ignored) ! Emergency stop. <*> ...exlive/2021/texmf-dist/tex/latex/tools/.tex ! ==> Fatal error occurred, no output PDF file produced! Transcript written on .log. Failure to make '.pdf' Collected error summary (may duplicate other messages): pdflatex: Command for 'pdflatex' gave return code 1 Refer to '.log' for details Latexmk: Undoing directory change Latexmk: Some operations failed, for the following tex file(s) Latexmk: Examining '.log' === TeX engine is 'pdfTeX' Latexmk: Errors, in force_mode: so I tried finishing targets ...\Documents\utils\texlive\2021\bin\win32\runscript.tlu:915: command failed with exit code 12: perl.exe d:\xx\Documents\utils\texlive\2021\texmf-dist\scripts\latexmk\latexmk.pl -pdf -f "c:/Users/xx/AppData/Local/Temp/babel-B1S4gp/latex-JEShjO.tex" -cd "c:/Users/xx/AppData/Local/Temp/babel-B1S4gp/" <=> I wonder why it tries every time to compile a ".tex" file although the temporary previous pdf file was correctly generated. Finally, if I change "test1.png" to "test1.svg", such a svg file is generated but with garbage in it. I would like to find a way to generate svg images from latex src blocks (using tikz) which works and is compatible with default orgmode settings for latex export (at least does not break it) Did you experience such issues ? do you have some workings settings and examples ? I googled several times "org latex block tikz svg", but it is difficult to guess how relevant are the elements found, some of them seems quiet outdated. Hence my question on this mailing list Regards My configuration : - windows 11 - emacs 29.0.50 (compiled master from a few days) - orgmode (9.5.2) - mingw64 : imagemagick - texlive 2021 (installed from yesterday)
Re: [BUG] Evaluating org-class throws a void-variable error [9.6 (9.6-??-0c9b30e96 @ ~/.emacs.d/.local/straight/build-27.2/org/)]
Giorgi Gvalia writes: > Excuse the potential bad formatting, I am new to sending bug reports like > this. > > When using the string `<%%(org-class 2022 1 17 2022 5 7 1 17 19)>` to > schedule an item, I was expecting for it to build occurences accordingly. > Instead I received the error "Not an Org time string: %%(org-class 2022 1 17 > 2022 5 7 1 17 19)". I then tried to evalute the org-class expression by > itself and received the following error: "Symbol's value as variable is void: > date". Looking at the source code, I see that there is a variable "date" that > is defined on line 5950 of org-agenda.el and subsequently used to define the > variable "d" in the let block. Unfortunately, I'm not able to ascertain where > the value of this variable should be acquired from. I just tried the following heading and it works just fine: * this SCHEDULED: <%%(org-class 2022 1 17 2022 5 7 1 17 19)> Can you provide exact steps that you tried? Ideally, starting from clean configuration. See https://orgmode.org/manual/Feedback.html The error you are getting is to be expected because diary functions are special. They expect the variable =date= to be set externally. It is normally done by agenda, but not when you try to evaluate the diary function manually. Best, Ihor
[BUG] Evaluating org-class throws a void-variable error [9.6 (9.6-??-0c9b30e96 @ ~/.emacs.d/.local/straight/build-27.2/org/)]
Remember to cover the basics, that is, what you expected to happen and what in fact did happen. You don't know how to make a good report? See https://orgmode.org/manual/Feedback.html#Feedback Your bug report will be posted to the Org mailing list. Excuse the potential bad formatting, I am new to sending bug reports like this. When using the string `<%%(org-class 2022 1 17 2022 5 7 1 17 19)>` to schedule an item, I was expecting for it to build occurences accordingly. Instead I received the error "Not an Org time string: %%(org-class 2022 1 17 2022 5 7 1 17 19)". I then tried to evalute the org-class expression by itself and received the following error: "Symbol's value as variable is void: date". Looking at the source code, I see that there is a variable "date" that is defined on line 5950 of org-agenda.el and subsequently used to define the variable "d" in the let block. Unfortunately, I'm not able to ascertain where the value of this variable should be acquired from. Here is the backtrace of the eval I performed: Debugger entered--Lisp error: (void-variable date) (calendar-absolute-from-gregorian date) (let* ((date1 (calendar-absolute-from-gregorian (list m1 d1 y1))) (date2 (calendar-absolute-from-gregorian (list m2 d2 y2))) (d (calendar-absolute-from-gregorian date)) (h (if skip-weeks (progn (calendar-check-holidays date) (and (<= date1 d) (<= d date2) (= (calendar-day-of-week date) dayname) (or (not skip-weeks) (progn (require 'cal-iso) (not (member (car (calendar-iso-from-absolute d)) skip-weeks (not (or (and h (memq 'holidays skip-weeks)) (delq nil (mapcar #'(lambda ... ...) h entry)) org-class(2022 1 17 2022 5 7 1 17 19) (progn (org-class 2022 1 17 2022 5 7 1 17 19)) eval((progn (org-class 2022 1 17 2022 5 7 1 17 19)) nil) (let ((buffer-file-name (buffer-file-name (buffer-base-buffer))) (doom--current-module (condition-case nil (progn (doom-module-from-path buffer-file-name)) (error nil))) (debug-on-error t)) (eval (read (format "(progn %s)" (buffer-substring-no-properties beg end))) lexical-binding)) (let ((result (let ((buffer-file-name (buffer-file-name (buffer-base-buffer))) (doom--current-module (condition-case nil (progn ...) (error nil))) (debug-on-error t)) (eval (read (format "(progn %s)" (buffer-substring-no-properties beg end))) lexical-binding (require 'pp) (replace-regexp-in-string "n" "\n" (pp-to-string result))) (condition-case e (let ((result (let ((buffer-file-name (buffer-file-name ...)) (doom--current-module (condition-case nil ... ...)) (debug-on-error t)) (eval (read (format "(progn %s)" ...)) lexical-binding (require 'pp) (replace-regexp-in-string "n" "\n" (pp-to-string result))) ((debug error) (error-message-string e))) (string-trim-right (condition-case e (let ((result (let ((buffer-file-name ...) (doom--current-module ...) (debug-on-error t)) (eval (read ...) lexical-binding (require 'pp) (replace-regexp-in-string "n" "\n" (pp-to-string result))) ((debug error) (error-message-string e (+eval-display-results (string-trim-right (condition-case e (let ((result (let (... ... ...) (eval ... lexical-binding (require 'pp) (replace-regexp-in-string "n" "\n" (pp-to-string result))) ((debug error) (error-message-string e (current-buffer)) +emacs-lisp-eval(1 42) funcall(+emacs-lisp-eval 1 42) (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end))) (let ((runner (or (alist-get major-mode +eval-runners) (and (require 'quickrun nil t) (equal (setq lang (quickrun--command-key ...)) "emacs") (alist-get 'emacs-lisp-mode +eval-runners lang) (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end (cond ((and (fboundp '+eval--ensure-in-repl-buffer) (condition-case nil (progn (get-buffer-window (or (+eval--ensure-in-repl-buffer) t))) (error nil))) (funcall (or (plist-get (cdr (alist-get major-mode +eval-repls)) :send-region) #'+eval/send-region-to-repl) beg end)) ((let ((runner (or (alist-get major-mode +eval-runners) (and (require ... nil t) (equal ... "emacs") (alist-get ... +eval-runners lang) (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end)) (let ((load-file-name buffer-file-name)) (cond ((and (fboundp '+eval--ensure-in-repl-buffer) (condition-case nil (progn (get-buffer-window (or ... t))) (error nil))) (funcall (or (plist-get (cdr (alist-get major-mode +eval-repls)) :send-region) #'+eval/send-region-to-repl) beg end)) ((let ((runner (or (alist-get major-mode +eval-runners) (and ... ... ...))) lang) (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end))) +eval/region(1 42) (if buffer-handler (funcall buffer-handler) (+eval/region (point-min) (point-max))) (let*