Re: [O] [RFC] org-style
Ciao Gregor, >> What do you think about this? Is this worth to merge into org mode? > > This is nice, I played with it and see it's merit, but I think > this should not be enabled by default. > > Even if the user had to enable it first via customization, this > version of the code has another drawback: if it actually touches > the buffer in order to change the number of blank lines it at the > same time removes the indentation of the first non blank line. > This might not be what the user wishes and should either not be > the case or also disabled per default: Thanks for the feedback. I fully agree to just offer this styling as an option. The other issue, i.e. accidential deletion of leading whitespace and thanks for pointing that out, can be solved by using the following code AFAICS. #v+ (defun org-style-blanklines-assure (num) "Assure exactly NUM blanklines and set point to the end of those. The buffer remains unchanged when the blanklines are already there and empty." (skip-chars-backward "\t \n") (let ((numplusone-newlines (make-string (1+ num) ?\n))) (if (looking-at (concat numplusone-newlines "[^\n]")) (goto-char (1- (match-end 0))) (when (looking-at "\\(\\(\t\\| \\)*\n\\)+") (delete-region (match-beginning 0) (match-end 0))) (insert numplusone-newlines #v- Ciao, Marco
Re: [O] [RFC] org-style
Hi Marco, org-mode developers and users, * Marco Wahl [2019-05-10; 13:55]: > What do you think about this? Is this worth to merge into org mode? This is nice, I played with it and see it's merit, but I think this should not be enabled by default. Even if the user had to enable it first via customization, this version of the code has another drawback: if it actually touches the buffer in order to change the number of blank lines it at the same time removes the indentation of the first non blank line. This might not be what the user wishes and should either not be the case or also disabled per default: Ciao; Gregor -- -... --- .-. . -.. ..--.. ...-.-
Re: [O] [RFC] org-style
I like it, and I'll be using it. I like a certain amount of whitespace in my files, and your code works great for me. Thanks!
[O] [RFC] org-style
Hi all, For some time now I enforce a simple "style" for my org-mode files on save. Concretely the style is just assuring the number of blank lines immediately before a heading and the number of blank lines after the meta section, e.g. a property-drawer, in each subtree. This unifies my org files and I don't change blank lines by hand very often any more. What do you think about this? Is this worth to merge into org mode? Ciao, Marco P.S.: I have the code below in my init.el. #v+ (defcustom org-style-blanklines-num-before-heading 1 "Number of blank lines before each heading.") (defcustom org-style-blanklines-num-after-meta 1 "Number of blank lines after the heading meta section. If this happens to be a section before a heading the value of `num-blanklines-before-heading' is taken.") (defun org-style-blanklines-assure (num) "Assure exactly NUM blanklines and set point to the end of those. The buffer remains unchanged when the blanklines are already there." (skip-chars-backward "\t \n") (let ((numplusone-newlines (make-string (1+ num) ?\n))) (if (looking-at (concat numplusone-newlines "[^\n]")) (goto-char (1- (match-end 0))) (delete-region (point) (progn (skip-chars-forward "\t \n") (point))) (insert numplusone-newlines (defun org-style-blanklines-at-headings () "Apply blank lines style. This is the number of blank lines: . before a heading`org-style-num-blanklines-before-heading' and . after the org meta data `org-style-num-blanklines-after-meta'." (goto-char (point-min)) (unless (org-at-heading-p) (outline-next-heading)) (while (and (not (eobp)) (< (point) (point-max))) (cl-assert (org-at-heading-p) "programming logic error. shoot a programmer, but not me") (org-style-blanklines-assure org-style-blanklines-num-before-heading) (org-style-blanklines-after-next-meta-data org-style-blanklines-num-after-meta) (unless (org-at-heading-p) (outline-next-heading (defun org-style-blanklines-after-next-meta-data (num) "Assure exactly NUM blanklines after next meta data. When end of meta data is a headline, then leave point there and do nothing else." (org-end-of-meta-data t) (unless (org-at-heading-p) (org-style-blanklines-assure num))) ;; style the org-mode buffer before save. (add-hook 'before-save-hook (lambda () (when (equal 'org-mode major-mode) (save-excursion (org-style-blanklines-at-headings) #v-