Rainer M Krug <r.m.k...@gmail.com> writes: > On Friday, June 7, 2013, Vitalie Spinu wrote: > > All your examples are placed in fundamental mode. The comments are > treated by org and thus are correct, local variables are inserted > according to the major mode. > > The question is why - all .R files are automatically in r mode when I > open them and all other R files tangle fine. > That's because the auto-mode-alist tells emacs that .R files should be in R-mode, so after emacs opens the file, it calls the R-mode function.
> I don't how this could be easily fixed on org side, but you can > solve it straightforwardly with: > > (add-to-list 'auto-mode-alist (cons "NAME\\|DESC" 'R-mode)) > > Ok - I'check it out on Monday. > That's one way: it's got its downside in that the names have to match, so you have to remember to modify the auto-mode-alist when you use different names when tangling. Another way is to modify the function below: > > I use the following in my .emacs file to set the > > post-tangle-hook to add the local file variables: > > > ,---- > > | (defvar org-babel-tangled-file nil > > | "If non-nill, current file was tangled with org-babel-tangle") > > | (put 'org-babel-tangled-file 'safe-local-variable 'booleanp) > > | > > | (defun org-babel-mark-file-as-tangled () (R-mode) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< > > | (add-file-local-variable 'org-babel-tangled-file t) > > | (add-file-local-variable 'buffer-read-only t) > > | ;; (add-file-local-variable 'eval: (auto-revert-mode)) > > | (basic-save-buffer)) > > | > > | (add-hook 'org-babel-post-tangle-hook > > | 'org-babel-mark-file-as-tangled) > > `---- > > to call R-mode explicitly. That's got its own downside: all your tangled files are going to be in R-mode. The point is that you have to tell emacs somehow what you are doing: it can't guess that you are producing R-mode files without some help. -- Nick