Re: [Orgmode] overzealous file link creation

2009-08-12 Thread Manish
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

2009-08-12 Thread Carsten Dominik


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

2009-08-12 Thread Carsten Dominik


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

2009-08-12 Thread Dan Davison
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

2009-08-12 Thread Carsten Dominik


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

2009-08-11 Thread Nick Dokos
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