From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Brand Subject: hidestarsfile: "hidestars" for file Date: Fri, 3 Feb 2012 17:43:06 +0100 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Return-path: Received: from eggs.gnu.org ([140.186.70.92]:54214) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RtMEM-000117-AJ for emacs-orgmode@gnu.org; Fri, 03 Feb 2012 11:43:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RtME8-0000Ck-GE for emacs-orgmode@gnu.org; Fri, 03 Feb 2012 11:43:22 -0500 Received: from mail-ww0-f41.google.com ([74.125.82.41]:46355) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RtME8-0000CF-9P for emacs-orgmode@gnu.org; Fri, 03 Feb 2012 11:43:08 -0500 Received: by wgbdt11 with SMTP id dt11so1473942wgb.0 for ; Fri, 03 Feb 2012 08:43:06 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Org Mode Hi all Using hooks for file find and for file save I implemented hidestarsfile: On the fly and inspired by hidestars (a cleaner outline view: http://orgmode.org/manual/Clean-view.html ) - remove the leading stars from all headings when writing a buffer to the file - reinsert the leading stars when reading a file into the buffer Following is an example of the _file content_ first with leading stars as usual and below without leading stars through "#+STARTUP: odd hidestars hidestarsfile": #+BEGIN_EXAMPLE #+STARTUP: odd hidestars [...] ***** TODO section ******* subsection ********* subsubsec - bla bla ***** section - bla bla ******* subsection #+END_EXAMPLE #+BEGIN_EXAMPLE #+STARTUP: odd hidestars hidestarsfile [...] * TODO section * subsection * subsubsec - bla bla * section - bla bla * subsection #+END_EXAMPLE The latter is convenient for better human readability when an Org file, additionally to Emacs, is read with a file viewer or, for smaller edits, with an editor not capable of the Org file format. To change the format for the current file simply add or remove the keyword hidestarsfile in the STARTUP line. hidestarsfile is just a hack and can not become part of the Org core: - An Org file with hidestarsfile can not contain list items with a star as bullet due to the syntax conflict at read time. - An Org file with hidestarsfile can almost not be edited with an Org mode without added functionality of hidestarsfile as long as the file is not converted back. I am still uncertain about if this could be made Org-mode-specific to cover more use cases: When switching between Org mode and another major mode like Fundamental mode it would remove and reinsert the leading stars in the buffer itself, not only in the file. The current state is that it only reinserts the leading stars in the buffer and only removes them in the file. It does this regardless of the major mode, assuming that not-Org-files don't contain the "^#\+STARTUP:" hidestarsfile keywords. This is a simplification but I think it also helps to ensure better that it is less prone to the error of loosing track if it should now remove or reinsert and whether to mark not-modified. The org-mode-hook is called also when following a link and sometimes (source blocks?) more than once when just opening a file. I guess that this tracking could be even harder for leaving Org mode. The text until here and the 40 lines of Emacs Lisp are on Worg: http://orgmode.org/worg/org-hacks.html#hidestarsfile Are there opinions about making hidestarsfile Org-mode-specific as mentioned above? Is there a hook for the event of leaving Org mode or could one be added for this purpose? Michael