Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
Hello, Brian Carlsonwrites: > Should I have made the changes to contrib/orgmanual.org rather than > doc/org.texi. Or should I have made changes to both? Changes to both is fine. I applied your patch. Thank you. Regards, -- Nicolas Goaziou
Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
On 2016-05-26 02:52, Nicolas Goaziou wrote: I realize that the org texinfo manual probably needs to be updated, as well. I'll take a stab at updating that unless someone else wants to take that on. You're right. You can merge ORG-NEWS modifications into the documentation patch. I just realized. I the patch I submitted had modifications to doc/org.texi. Should I have made the changes to contrib/orgmanual.org rather than doc/org.texi. Or should I have made changes to both? Thanks, ;-b
Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
On 2016-05-26 02:52, Nicolas Goaziou wrote: I realize that the org texinfo manual probably needs to be updated, as well. I'll take a stab at updating that unless someone else wants to take that on. You're right. You can merge ORG-NEWS modifications into the documentation patch. Here is the patch for both doc/org.texi and etc/ORG-NEWS. I apologize for the delay in getting this to the list. Thanks! ;-b >From 466f0c755180f7475484abc6715accdf74a8a0f3 Mon Sep 17 00:00:00 2001 From: "Brian J. Carlson"Date: Sun, 29 May 2016 22:37:18 -0400 Subject: [PATCH] org.texi: Updated doc for [+-]n in SRC/EXAMPLE export * doc/org.texi (Timers): Added information about optional argument to -n/+n line-numbering * etc/ORG-NEWS: Added infomation for "Provide offset to [+-]n in SRC/EXAMPLE export" (commit af8e3d8) --- doc/org.texi | 29 ++--- etc/ORG-NEWS | 16 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/doc/org.texi b/doc/org.texi index 9d89975..0d0d30f 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -10045,13 +10045,28 @@ shortcuts to easily insert code blocks. Both in @code{example} and in @code{src} snippets, you can add a @code{-n} switch to the end of the @code{BEGIN} line, to get the lines of the example -numbered. If you use a @code{+n} switch, the numbering from the previous -numbered snippet will be continued in the current one. In literal examples, -Org will interpret strings like @samp{(ref:name)} as labels, and use them as -targets for special hyperlinks like @code{[[(name)]]} (i.e., the reference name -enclosed in single parenthesis). In HTML, hovering the mouse over such a -link will remote-highlight the corresponding code line, which is kind of -cool. +numbered. The @code{-n} takes an optional numeric argument specifying the starting +line number of the block. If you use a @code{+n} switch, the numbering from +the previous numbered snippet will be continued in the current one. The +@code{+n} can also take a numeric argument. The value of the argument will be +added to the last line of the previous block to determine the starting line +number. +@example +#+BEGIN_SRC emacs-lisp -n 20 + ;; this will export with line number 20 + (message "This is line 21") +#+END_SRC +#+BEGIN_SRC emacs-lisp +n 10 + ;; This will be listed as line 31 + (message "This is line 32") +#+END_SRC +@end example + +In literal examples, Org will interpret strings like @samp{(ref:name)} as +labels, and use them as targets for special hyperlinks like @code{[[(name)]]} +(i.e., the reference name enclosed in single parenthesis). In HTML, hovering +the mouse over such a link will remote-highlight the corresponding code line, +which is kind of cool. You can also add a @code{-r} switch which @i{removes} the labels from the source code@footnote{Adding @code{-k} to @code{-n -r} will @i{keep} the diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 72f8d5c..34eb9ab 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -159,6 +159,22 @@ If the block has a =#+NAME:= attribute assigned, then the HTML element will have an ~id~ attribute with that name in the HTML export. This enables one to create links to these elements in other places, e.g., ~text~. + Line Numbering in SRC/EXAMPLE blocks support arbitrary start number +The ~-n~ option to ~SRC~ and ~EXAMPLE~ blocks can now take a numeric +argument to specify the staring line number for the source or example +block. The ~+n~ option can now take a numeric argument that will be +added to the last line number from the previous block as the starting +point for the SRC/EXAMPLE block. +#+BEGIN_SRC org + ,#+BEGIN_SRC emacs-lisp -n 20 +;; this will export with line number 20 +(message "This is line 21") + ,#+END_SRC + ,#+BEGIN_SRC emacs-lisp +n 10 +;; This will be listed as line 31 +(message "This is line 32") + ,#+END_SRC +#+END_SRC *** Babel Support for SLY in Lisp blocks -- 2.8.3
Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
On 2016-05-26 02:52, Nicolas Goaziou wrote: Hello, Brian Carlsonwrites: I put the signed paperwork into the mail this evening. Great. Sure. I'll use previous entries as a starting point. I was thinking that the entry should go under: Version 9.0/New Features/Export/ unless there's a more appropriate place in the Document. I also think this is the correct location. Here's what I thought about putting. I can make a patch if that is preferred means of submission. If what I've written doesn't make sense let me know. Line Numbering in SRC/EXAMPLE blocks support arbitrary start number The -n option to SRC and EXAMPLE blocks can now take an numeric argument to specify "a numeric argument" the staring line number for the source or example block. The +n option can now take a numeric argument that will be added to the last line number from the previous block as the starting point for the SRC/EXAMPLE block. #+BEGIN_SRC emacs-lisp -n 20 ;; this will export with line number 20 (message "This is line 21") #+END_SRC #+BEGIN_SRC emacs-lisp +n 10 ;; This will be listed as line 31 (message "This is line 32") #+END_SRC I realize that the org texinfo manual probably needs to be updated, as well. I'll take a stab at updating that unless someone else wants to take that on. You're right. You can merge ORG-NEWS modifications into the documentation patch. Thank you ! Regards,
Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
Hello, Brian Carlsonwrites: > I put the signed paperwork into the mail this evening. Great. > Sure. I'll use previous entries as a starting point. > I was thinking that the entry should go under: Version 9.0/New > Features/Export/ > unless there's a more appropriate place in the Document. I also think this is the correct location. > Here's what I thought about putting. I can make a patch if that is preferred > means of submission. If what I've written doesn't make sense let me know. > > Line Numbering in SRC/EXAMPLE blocks support arbitrary start number > The -n option to SRC and EXAMPLE blocks can now take an numeric argument to > specify "a numeric argument" > the staring line number for the source or example block. The +n option can now > take a numeric argument that will be added to the last line number from the > previous block as the starting point for the SRC/EXAMPLE block. > #+BEGIN_SRC emacs-lisp -n 20 > ;; this will export with line number 20 > (message "This is line 21") > #+END_SRC > > #+BEGIN_SRC emacs-lisp +n 10 > ;; This will be listed as line 31 > (message "This is line 32") > #+END_SRC > > I realize that the org texinfo manual probably needs to be updated, as well. > I'll take a stab at updating that unless > someone else wants to take that on. You're right. You can merge ORG-NEWS modifications into the documentation patch. Thank you ! Regards, -- Nicolas Goaziou
Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
On 2016-05-24 16:33, Nicolas Goaziou wrote: > Completing myself Great. Thanks! Very much appreciated. I went back and forth on the tests with the "string formatting." I should have gone with my original thoughts ;) The fixes to (org-export-get-loc) were a bit beyond my skill level. I don't work in lisp/scheme/emacs-lisp too much. Usually I know just enough to be dangerous ;) So Thanks! >> Applied, with a small refactoring. Thank you. No problem. Hope it helps others. >> Please let us know when the FSF paperwork is done I put the signed paperwork into the mail this evening. > Also, could you provide and ORG-NEWS entry for that patch? Sure. I'll use previous entries as a starting point. I was thinking that the entry should go under: Version 9.0/New Features/Export/ unless there's a more appropriate place in the Document. Here's what I thought about putting. I can make a patch if that is preferred means of submission. If what I've written doesn't make sense let me know. --8<---cut here---start->8--- Line Numbering in SRC/EXAMPLE blocks support arbitrary start number The -n option to SRC and EXAMPLE blocks can now take an numeric argument to specify the staring line number for the source or example block. The +n option can now take a numeric argument that will be added to the last line number from the previous block as the starting point for the SRC/EXAMPLE block. #+BEGIN_SRC emacs-lisp -n 20 ;; this will export with line number 20 (message "This is line 21") #+END_SRC #+BEGIN_SRC emacs-lisp +n 10 ;; This will be listed as line 31 (message "This is line 32") #+END_SRC --8<---cut here---end--->8--- I realize that the org texinfo manual probably needs to be updated, as well. I'll take a stab at updating that unless someone else wants to take that on. Thanks, ;-b
Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
Completing myself Nicolas Goaziouwrites: > Applied, with a small refactoring. Thank you. > > Please let us know when the FSF paperwork is done Also, could you provide and ORG-NEWS entry for that patch? Thank you. Regards,
Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)
Hello, Brian Carlsonwrites: > I believe that I addressed all your review comments/recommendations. > I am submitting the latest patch. This patch also include some > additions to /testing/lisp/test-ox.el to test the feature. All of the > existing tests pass (without modification). Applied, with a small refactoring. Thank you. Please let us know when the FSF paperwork is done Regards, -- Nicolas Goaziou
[O] PATCH: ox: Starting source code export at non-zero (-n value)
On 2016-05-20 16:48, Nicolas Goaziou wrote: The code is written with the following design: -n is the same as -n 1 : The functionality is unchanged +n is the same as +n 1 : The functionality is unchanged -n X will "reset" and start new code block starting at line X +n X will "add" X to the last line of the block before. Thank you for the patch. It looks like an useful addition to Org. Some comments follow. I believe that I addressed all your review comments/recommendations. I am submitting the latest patch. This patch also include some additions to /testing/lisp/test-ox.el to test the feature. All of the existing tests pass (without modification). In general the main change was to (org-export-get-loc) which returns the number of lines "before" the first line of a block (as it always has) regardless of the type (new/continued) (or nil if the block does not provide +/-n option (as it always has). Thanks, ;-b >From dd01dada2c3c0ee0d8cc28184026720f8602680b Mon Sep 17 00:00:00 2001 From: Brian CarlsonDate: Mon, 16 May 2016 10:58:01 -0400 Subject: [PATCH] ox: Provide offset to [+-]n in SRC/EXAMPLE export * lisp/org-element.el (org-element-example-block-parser): Use cons cell for :number-lines specifying offset in addition to type (new/continue). ('continue . offset) for :number-lines will add this offset count to the last line number. ('new . offset) for :number-lines will reset the line number counting starting at offset (org-element-src-block-parser): same for SRC block as EXAMPLE block * lisp/ox-html.el (org-html-format-code): Use cons cell :number-lines * lisp/ox-latex.el (org-latex-src-block): Use cons cell :number-lines * lisp/ox-odt.el (org-odt-format-code): Use cons cell for :number-lines * lisp/ox.el (org-export-resolve-coderef): Use cons cell for :number-lines (org-export-get-loc): Use new cons cell for :number-lines (org-export-format-code-default): Use new cons cell for :number-lines * testing/lisp/test-ox.el (ert-deftest test-org-export/get-loc): Tests for changes (test-org-gen-loc-list): helper function for test-org-export/get-loc * contrib/lisp/ox-groff.el (org-groff-src-block): Use new cons cell for :number-lines --- contrib/lisp/ox-groff.el | 4 +- lisp/org-element.el | 26 --- lisp/ox-html.el | 4 +- lisp/ox-latex.el | 4 +- lisp/ox-odt.el | 4 +- lisp/ox.el | 20 + testing/lisp/test-ox.el | 109 +++ 7 files changed, 146 insertions(+), 25 deletions(-) diff --git a/contrib/lisp/ox-groff.el b/contrib/lisp/ox-groff.el index b49edce..25ed8b0 100644 --- a/contrib/lisp/ox-groff.el +++ b/contrib/lisp/ox-groff.el @@ -1488,9 +1488,7 @@ contextual information." (custom-env (and lang (cadr (assq (intern lang) org-groff-custom-lang-environments - (num-start (case (org-element-property :number-lines src-block) - (continued (org-export-get-loc src-block info)) - (new 0))) + (num-start (org-export-get-loc src-block info)) (retain-labels (org-element-property :retain-labels src-block)) (caption (and (not (org-export-read-attribute :attr_groff src-block :disable-caption)) diff --git a/lisp/org-element.el b/lisp/org-element.el index 368da60..5f62a7e 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -1896,8 +1896,16 @@ containing `:begin', `:end', `:number-lines', `:preserve-indent', ;; Switches analysis (number-lines (cond ((not switches) nil) - ((string-match "-n\\>" switches) 'new) - ((string-match "+n\\>" switches) 'continued))) + ((string-match "-n *\\([0-9]+\\)\\>" switches) + ;; subtract 1 to give number of lines before first line + (cons 'new (- (string-to-number (match-string 1 switches)) 1))) + ((string-match "-n\\>" switches) + (cons 'new 0)) + ((string-match "+n *\\([0-9]+\\)\\>" switches) + ;; subtract 1 to give number of lines between last number and first line + (cons 'continued (- (string-to-number (match-string 1 switches)) 1))) + ((string-match "+n\\>" switches) + (cons 'continued 0 (preserve-indent (and switches (string-match "-i\\>" switches))) ;; Should labels be retained in (or stripped from) example @@ -2393,7 +2401,7 @@ Assume point is at the beginning of the block." (looking-at (concat "^[ \t]*#\\+BEGIN_SRC" "\\(?: +\\(\\S-+\\)\\)?" - "\\(\\(?: +\\(?:-l \".*?\"\\|[-+][A-Za-z]\\)\\)+\\)?" + "\\(\\(?: +\\(?:-l \".+\"\\|[+-]n *[0-9]+\\|-[iIkKrRnN]\\|+[nN]\\)\\)+\\)?" "\\(.*\\)[ \t]*$")) (org-match-string-no-properties 1))) ;; Get switches. @@ -2403,8 +2411,16 @@ Assume point is at the beginning of the block." ;; Switches analysis (number-lines (cond ((not switches) nil) - ((string-match "-n\\>"