From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thorsten Jolitz Subject: Re: org-element-at-point fails in programming-modes Date: Wed, 20 Aug 2014 15:52:40 +0200 Message-ID: <87r40b9sk7.fsf@gmail.com> References: <87zjez9xqc.fsf@gmail.com> <878umj8hc4.fsf@geodiff-mac3.ulb.ac.be> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35916) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XK6Jy-0004NK-Tt for emacs-orgmode@gnu.org; Wed, 20 Aug 2014 09:53:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XK6Jt-0000Mx-5Q for emacs-orgmode@gnu.org; Wed, 20 Aug 2014 09:53:02 -0400 Received: from plane.gmane.org ([80.91.229.3]:59281) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XK6Js-0000Mq-UX for emacs-orgmode@gnu.org; Wed, 20 Aug 2014 09:52:57 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1XK6Jr-0000BN-Hm for emacs-orgmode@gnu.org; Wed, 20 Aug 2014 15:52:55 +0200 Received: from e178061066.adsl.alicedsl.de ([85.178.61.66]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 20 Aug 2014 15:52:55 +0200 Received: from tjolitz by e178061066.adsl.alicedsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 20 Aug 2014 15:52:55 +0200 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: emacs-orgmode@gnu.org Nicolas Richard writes: >> Although Org functions are of course made only for working in org-mode >> and its a bit hard to see at first sight how this could be useful, I >> wonder if the regexps could be made a bit more general to make >> `org-element-at-point' work in programming modes too (most likely this >> behaviour is caused by references to character-classes that differ in >> text-modes and programming-modes)? > > The reason is that a newline has the "endcomment" syntax in programming > modes, but has "whitespace" syntax in text modes. So the regexp > "\\+BEGIN_\\(\\S-+\\)" (which can be found in org-element.el) matches > e.g. "+BEGIN_QUOTE\nhallo" instead of just "+BEGIN_QUOTE". > ("\\S-" means "anything that doesn't have whitespace syntax") Yes, thats more or less what I expected to be the root cause of the problem. > You could wrap your code in a (with-syntax-table org-mode-syntax-table > ...) and cross fingers, or simply do the (org-element-at-point) > computations in a temporary (org-mode) buffer. Ok, thanks, that sounds promising. OTOH, is the use of "\\S-" really mandatory, couldn't a more robust construct be used, either something like this (untested) regexp: ,---- | "[^[:space:]\\n]+" `---- or a custom character-class that consists of whitespace plus newline? -- cheers, Thorsten