Re: [Orgmode] overzealous file link creation
On Wed, Aug 12, 2009 at 1:59 AM, Dan Davison wrote: Recently I've been randomly losing the string 'file' from all sorts of documents. Up until now I had no explanation. It's not the sort of question one wants to ask on public mailing lists. OK, so if you call org-cycle in the vicinity of a word that starts with the string 'file', then it eats up 'file' and prompts for link insertion. This is true in buffers that are not in org-mode or orgstruct*-mode. (I call org-cycle the whole time in order to use outline-minor-mode, but o-m-m doesn't have to be turned on to cause this.) Try putting the following fragment into python-mode, and getting rid of the asterisks. Then org-cycle issued with point at any of the asterisked locations eats the string 'file' and prompts for a link. --8---cut here---start-8--- def f(filepath): print( *filepath*)* * *def g(arg): return arg --8---cut here---end---8--- This is with latest git. Tried the test with following text with numbers removed. --8---cut here---start-8--- def f(filepath): print( 1filepath2)3 4 5def g(arg): return arg --8---cut here---end---8--- With buffer in python mode, I executed org-cycle at the positions marked with numbers and got the results below: at 1,2,3: nothing happens at 4: inserts a tab (four spaces in my case) at 5: eats the line with return arg (also can not revert this change with undo.) The buffer looks as if it ends at def g(arg): line but when I tried to paste the resultant buffer with return arg removed, I got the following strange result. --8---cut here---start-8--- def f(filepath): print( filepath) def g(arg): return arg return arg return arg --8---cut here---end---8--- I tried it several times, also tried saving the buffer and opening it in that other editor as well. Tested with git commit 5834ad01b617430c0207627ad425758bcf9b921a of Tue Aug 11 16:32:05 2009 +0200 -- Manish ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] overzealous file link creation
On Aug 11, 2009, at 10:29 PM, Dan Davison wrote: Recently I've been randomly losing the string 'file' from all sorts of documents. Up until now I had no explanation. It's not the sort of question one wants to ask on public mailing lists. OK, so if you call org-cycle in the vicinity of a word that starts with the string 'file', then it eats up 'file' and prompts for link insertion. This is true in buffers that are not in org-mode or orgstruct*-mode. (I call org-cycle the whole time in order to use outline-minor-mode, but o-m-m doesn't have to be turned on to cause this.) Try putting the following fragment into python-mode, and getting rid of the asterisks. Then org-cycle issued with point at any of the asterisked locations eats the string 'file' and prompts for a link. --8---cut here---start-8--- def f(filepath): print( *filepath*)* * *def g(arg): return arg --8---cut here---end---8--- This is with latest git. Hi Dan, could you please check the following variables: org-tab-first-hook org-tab-after-check-for-table-hook org-tab-after-check-for-cycling-hook Probably one of these contains a function that will do file link completion. - Carsten ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] overzealous file link creation
On Aug 12, 2009, at 9:52 AM, Manish wrote: On Wed, Aug 12, 2009 at 1:59 AM, Dan Davison wrote: Recently I've been randomly losing the string 'file' from all sorts of documents. Up until now I had no explanation. It's not the sort of question one wants to ask on public mailing lists. OK, so if you call org-cycle in the vicinity of a word that starts with the string 'file', then it eats up 'file' and prompts for link insertion. This is true in buffers that are not in org-mode or orgstruct*-mode. (I call org-cycle the whole time in order to use outline-minor-mode, but o-m-m doesn't have to be turned on to cause this.) Try putting the following fragment into python-mode, and getting rid of the asterisks. Then org-cycle issued with point at any of the asterisked locations eats the string 'file' and prompts for a link. --8---cut here---start-8--- def f(filepath): print( *filepath*)* * *def g(arg): return arg --8---cut here---end---8--- This is with latest git. Tried the test with following text with numbers removed. --8---cut here---start-8--- def f(filepath): print( 1filepath2)3 4 5def g(arg): return arg --8---cut here---end---8--- With buffer in python mode, I executed org-cycle at the positions marked with numbers and got the results below: at 1,2,3: nothing happens at 4: inserts a tab (four spaces in my case) at 5: eats the line with return arg (also can not revert this change with undo.) Hi Manish, the line is not eaten, it is hidden by outline. However, since you have not turned on outline-minor-mode, you do not see the ellipsis. A TAB is inserted because in places where org-cycle cannot do anything, it emulates TAB. I guess I should refactor org-cycle into a function that does only cycling, and one that does all the rest... - Carsten The buffer looks as if it ends at def g(arg): line but when I tried to paste the resultant buffer with return arg removed, I got the following strange result. --8---cut here---start-8--- def f(filepath): print( filepath) def g(arg): return arg return arg return arg --8---cut here---end---8--- I tried it several times, also tried saving the buffer and opening it in that other editor as well. Tested with git commit 5834ad01b617430c0207627ad425758bcf9b921a of Tue Aug 11 16:32:05 2009 +0200 -- Manish ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] overzealous file link creation
Carsten Dominik carsten.domi...@gmail.com writes: On Aug 11, 2009, at 10:29 PM, Dan Davison wrote: ... Try putting the following fragment into python-mode, and getting rid of the asterisks. Then org-cycle issued with point at any of the asterisked locations eats the string 'file' and prompts for a link. --8---cut here---start-8--- def f(filepath): print( *filepath*)* * *def g(arg): return arg --8---cut here---end---8--- This is with latest git. Hi Dan, could you please check the following variables: org-tab-first-hook , | org-tab-first-hook is a variable defined in `org.el'. | Its value is | (org-insert-link-maybe org-hide-block-toggle-maybe) ` OK, that was it, thanks. I had (add-hook 'org-tab-first-hook 'org-insert-link-maybe) I believe org-insert-link-maybe (code below) is something that Eric threw together: am I right in thinking it has not been incorporated into org core? In any case, could someone help me with the regexp problem I encountered when I tried to improve it? Here's the original version --8---cut here---start-8--- (defun org-insert-link-maybe () insert a file link depending on the context (interactive) (let ((case-fold-search t)) (if (save-excursion (when (re-search-backward [[:space:]] nil t) (forward-char 1) (looking-at \\[?\\[?file:?))) (progn (replace-match ) (org-insert-link '(4)) t) nil))) --8---cut here---end---8--- I want to (a) restrict it to looking at the current line and (b) not allow it to match words like 'filepath'. This seems to be almost there --8---cut here---start-8--- (defun org-insert-link-maybe () insert a file link depending on the context (interactive) (let ((case-fold-search t)) (if (save-excursion (backward-word) (looking-at \\[?\\[?file:?[ \t\n\f\v\r])) (progn (replace-match ) (org-insert-link '(4)) t) nil))) --8---cut here---end---8--- But this doesn't match 'file' followed by end-of-buffer. I want a character class that matches any of {space,tab,newline,end-of-buffer}. How do I do that? It seems that although \\' matches end-of-buffer, it doesn't work in a character class ([\\'])? Dan Probably one of these contains a function that will do file link completion. - Carsten ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] overzealous file link creation
On Aug 12, 2009, at 6:09 PM, Dan Davison wrote: Carsten Dominik carsten.domi...@gmail.com writes: On Aug 11, 2009, at 10:29 PM, Dan Davison wrote: ... Try putting the following fragment into python-mode, and getting rid of the asterisks. Then org-cycle issued with point at any of the asterisked locations eats the string 'file' and prompts for a link. --8---cut here---start-8--- def f(filepath): print( *filepath*)* * *def g(arg): return arg --8---cut here---end---8--- This is with latest git. Hi Dan, could you please check the following variables: org-tab-first-hook , | org-tab-first-hook is a variable defined in `org.el'. | Its value is | (org-insert-link-maybe org-hide-block-toggle-maybe) ` OK, that was it, thanks. I had (add-hook 'org-tab-first-hook 'org-insert-link-maybe) I believe org-insert-link-maybe (code below) is something that Eric threw together: am I right in thinking it has not been incorporated into org core? In any case, could someone help me with the regexp problem I encountered when I tried to improve it? Here's the original version --8---cut here---start-8--- (defun org-insert-link-maybe () insert a file link depending on the context (interactive) (let ((case-fold-search t)) (if (save-excursion (when (re-search-backward [[:space:]] nil t) (forward- char 1) (looking-at \\[?\\[?file:?))) (progn (replace-match ) (org-insert-link '(4)) t) nil))) --8---cut here---end---8--- I want to (a) restrict it to looking at the current line and (b) not allow it to match words like 'filepath'. This seems to be almost there --8---cut here---start-8--- (defun org-insert-link-maybe () insert a file link depending on the context (interactive) (let ((case-fold-search t)) (if (save-excursion (backward-word) (looking-at \\[?\\[?file:?[ \t\n\f\v\r])) (progn (replace-match ) (org-insert-link '(4)) t) nil))) --8---cut here---end---8--- But this doesn't match 'file' followed by end-of-buffer. I want a character class that matches any of {space,tab,newline,end-of-buffer}. How do I do that? It seems that although \\' matches end-of-buffer, it doesn't work in a character class ([\\'])? \\(?:[ \t\n]\\|\\'\\) HTH - Carsten ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] overzealous file link creation
Dan Davison davi...@stats.ox.ac.uk wrote: Recently I've been randomly losing the string 'file' from all sorts of documents. Up until now I had no explanation. It's not the sort of question one wants to ask on public mailing lists. OK, so if you call org-cycle in the vicinity of a word that starts with the string 'file', then it eats up 'file' and prompts for link insertion. This is true in buffers that are not in org-mode or orgstruct*-mode. (I call org-cycle the whole time in order to use outline-minor-mode, but o-m-m doesn't have to be turned on to cause this.) Try putting the following fragment into python-mode, and getting rid of the asterisks. Then org-cycle issued with point at any of the asterisked locations eats the string 'file' and prompts for a link. def f(filepath): print( *filepath*)* * *def g(arg): return arg This is with latest git. I cannot reproduce this. I created foo.py with the above contents, deleted the asterisks, saved the file and then tried M-x org-cycle at the various places indicated by the asterisks. In no case does a file disappear. At the three places around filepath in function f(), nothing happens. At the beginning of the def g(...), it folds the function (I also tried at the beginning of the definition of f, with the same result). In all of these cases, the buffer does not get modified. The only case where the buffer is modified is at the beginning of the empty line between the functions: I get a tab added (actually a bunch of spaces - not sure whether it makes a difference but I set indent-tabs-mode to nil). I think we need more people to try out the experiment!-) HTH, Nick ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode