emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Re: Native TAB in code blocks [WAS Re: Org now fontifies code


From: Carsten Dominik
Subject: [Orgmode] Re: Native TAB in code blocks [WAS Re: Org now fontifies code blocks]
Date: Thu, 2 Sep 2010 21:18:21 +0200

On Thu, Sep 2, 2010 at 9:06 PM, Dan Davison <address@hidden> wrote:
> Erik Iverson <address@hidden> writes:
>
>> Dan,
>>
>> Thank you to David and yourself for this great feature.  I have
>> absolutely no opinion about the default on/off, except to say it
>> looks great on.
>>
>> Is your TAB key patch[1] in master yet?
>> http://www.mail-archive.com/address@hidden/msg28640.html
>
> Hi Erik,
>
> Since these[1] changes, language-native TAB can be achieved in code
> blocks via C-c C-v C-x TAB and C-c C-v x TAB. We can add this to
> org-tab-first-hook, controlled by a variable `org-src-tab-acts-natively'
> as below. Carsten -- would you like to add this to Org, or leave it as a
> user customisation?

I think we can add this to Org.  Maybe default off, for now?

- Carten

>
> Dan
>
>
> --8<---------------cut here---------------start------------->8---
> diff --git a/lisp/org-src.el b/lisp/org-src.el
> index 6c09cbd..d1948cc 100644
> --- a/lisp/org-src.el
> +++ b/lisp/org-src.el
> @@ -715,6 +715,19 @@ Org-babel commands."
>      (call-interactively
>       (lookup-key org-babel-map key)))))
>
> +(defvar org-src-tab-acts-natively nil
> +  "If non-nil, the effect of TAB in a code block is as if it were
> +issued in the language major mode buffer.")
> +
> +(defun org-src-native-tab-command-maybe ()
> +  "Perform language-specific TAB action.
> +Alter code block according to effect of TAB in the language major
> +mode."
> +  (and org-src-tab-acts-natively
> +       (org-babel-do-key-sequence-in-edit-buffer (kbd "TAB"))))
> +
> +(add-hook 'org-tab-first-hook 'org-src-native-tab-command-maybe)
> +
>  (defun org-src-font-lock-fontify-block (lang start end)
>   "Fontify code block.
>  This function is called by emacs automatic fontification, as long
> --8<---------------cut here---------------end--------------->8---
>
>
> Footnotes:
>
> [1] http://thread.gmane.org/gmane.emacs.orgmode/28950
>
>>
>>
>>
>> Dan Davison wrote:
>>> I've just pushed changes which mean that Org now fontifies code in code
>>> blocks. Currently, this is turned on by default, so it would be helpful
>>> if people could report any problems, and opinions as to whether it
>>> should be on or off by default.
>>>
>>> To turn it off, use
>>>
>>> (setq org-src-fontify-natively nil)
>>>
>>> With it off, there are two functions for manually fontifying code
>>> blocks: `org-src-fontify-block' and `org-src-fontify-buffer'.
>>>
>>> With it on, on my netbook, there is a slight delay when typing in code
>>> blocks of over 100 lines in length, and this is pronounced in code
>>> blocks of several hundred lines.
>>>
>>> Just to be clear, this is fontification only -- no other language major
>>> mode features -- so the default method of editing code is still C-c '
>>> (org-edit-src-code).
>>>
>>> Thanks to David O'Toole for the original patch. The final version of the
>>> patch is based on Carsten's suggestions for a more efficient
>>> implementation.
>>>
>>> Dan
>>>
>>>
>>> Dan Davison <address@hidden> writes:
>>>
>>>> Dan Davison <address@hidden> writes:
>>>>
>>>>> "David O'Toole" <address@hidden> writes:
>>>>>
>>>>>> I've got a preliminary patch that adds optional "native" fontification
>>>>>> for source blocks. It uses the block's declared mode to fontify the
>>>>>> block text. So now blocks look the way they should, and this opens the
>>>>>> way to further enhancements.
>>>>> Hi David,
>>>>>
>>>>> This is great! Here's a patch which allows the src blocks to have
>>>>> switches and header args, and also uses `org-src-lang-modes' to find the
>>>>> major mode.
>>>> I'm resending this as a match against the current master branch, and as
>>>> an attachment so that it goes into the patchwork system. I am keeping
>>>> this line of patches in branch `src-block-fontification' at
>>>> git://github.com/dandavison/org-devel.git
>>>>
>>>> Dan
>>>>
>>>>
>>>> _______________________________________________
>>>> Emacs-orgmode mailing list
>>>> Please use `Reply All' to send replies to the list.
>>>> address@hidden
>>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> address@hidden
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]