4

When working with some environments (function and friends from l3doc prompted this), it is desirable to have the environment's arguments visible at all times:

Some text that, in reality, shouldn't be here in an l3doc
\begin{function}{\tl_new:N}
  Some documentation...
\end{function}
more inappropriate text

When folding this using C-c C-o C-e, everything goes away (which is useful for environments like minipage, etc.):

Some text that, in reality, shouldn't be here in an l3doc
  [function]
more inappropriate text

Is there any way to turn this into the following for certain environments?

Some text that, in reality, shouldn't be here in an l3doc
  [function]{\tl_new:N}
more inappropriate text

(If only a solution for all environments exists easily, I can manage with turning on/off the mode.)


If the solution would be similar, it would be really cool if you could have some sort of marker, say %!!, that would always stay visible in folded environments.

1 Answer 1

3

Start of a solution, based on this answer

(defun mg-TeX-fold-environment-with-argument ()
  "Hide the current environment with \"[environment]{argument}\"."
  (interactive)
  (if (equal (LaTeX-current-environment) "function")
      (let ((env-end (save-excursion
               (LaTeX-find-matching-end)
               (point)))
        env-start priority ov)
    (setq env-start (save-excursion
              (LaTeX-find-matching-begin)
              (looking-at "\\\\begin{function}\\({[^}]*}\\)")
              (point)))
    (if (and env-start env-end)
        (progn
          (setq priority (TeX-overlay-prioritize env-start env-end))
          (setq ov (make-overlay env-start env-end
                     (current-buffer) t nil))
          (overlay-put ov 'category 'TeX-fold)
          (overlay-put ov 'priority priority)
          (overlay-put ov 'evaporate t)
          (overlay-put ov 'TeX-fold-display-string-spec
               (concat "[function]" (match-string-no-properties 1)))
          (TeX-fold-hide-item ov))
      (message "No environment found")))))
2
  • This is really cool! Would you mind if I took a crack at generalizing it and posting this to GitHub? Aug 14, 2013 at 14:58
  • 1
    No, as long as you attribute it (though I shamelessly stole the code from the TeX-fold-make-overlay function), this site is under CC-BY-SA after all ;-)
    – giordano
    Aug 14, 2013 at 16:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .