* M-x man could better guess neighboring word @ 2007-12-14 8:07 jidanni 2007-12-14 9:40 ` martin rudalics 0 siblings, 1 reply; 7+ messages in thread From: jidanni @ 2007-12-14 8:07 UTC (permalink / raw) To: bug-gnu-emacs My cursor is at "_": jidanni@fartzwadd:~$ crontab _ and I do M-x man, and it doesn't prompt me with the default of crontab, instead I have to move the cursor back a bit and try again. emacs-version "22.1.1" ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: M-x man could better guess neighboring word 2007-12-14 8:07 M-x man could better guess neighboring word jidanni @ 2007-12-14 9:40 ` martin rudalics 2007-12-15 1:33 ` jidanni 0 siblings, 1 reply; 7+ messages in thread From: martin rudalics @ 2007-12-14 9:40 UTC (permalink / raw) To: jidanni; +Cc: bug-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 396 bytes --] > My cursor is at "_": > jidanni@fartzwadd:~$ crontab _ > and I do M-x man, and it doesn't prompt me with the default of > crontab, instead I have to move the cursor back a bit and try again. > emacs-version "22.1.1" Please try the attached patch. Would you find it useful to search previous lines, the remainder of the current line, following lines? Should we skip any non-whitespace chars? [-- Attachment #2: man.patch --] [-- Type: text/plain, Size: 457 bytes --] *** man.el.~1.167.2.6.~ Thu Nov 29 19:51:20 2007 --- man.el Fri Dec 14 10:22:56 2007 *************** *** 652,657 **** --- 652,658 ---- (if pos (goto-char pos)) ;; Default man entry title is any word the cursor is on, or if ;; cursor not on a word, then nearest preceding word. + (skip-chars-backward " \t") (skip-chars-backward "-a-zA-Z0-9._+:") (let ((start (point))) (skip-chars-forward "-a-zA-Z0-9._+:") ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: M-x man could better guess neighboring word 2007-12-14 9:40 ` martin rudalics @ 2007-12-15 1:33 ` jidanni 2007-12-16 10:11 ` martin rudalics 0 siblings, 1 reply; 7+ messages in thread From: jidanni @ 2007-12-15 1:33 UTC (permalink / raw) To: bug-gnu-emacs mr> Would you find it useful to search previous lines, the remainder mr> of the current line, following lines? Should we skip any mr> non-whitespace chars? Principles: always offer at least two default choices, one forwards/beneath, one backwards/beneath the cursor. The topmost of which should be the closest to the cursor. Skip past punctuation at the ends of sentences too... ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: M-x man could better guess neighboring word 2007-12-15 1:33 ` jidanni @ 2007-12-16 10:11 ` martin rudalics 2007-12-17 13:38 ` jidanni 0 siblings, 1 reply; 7+ messages in thread From: martin rudalics @ 2007-12-16 10:11 UTC (permalink / raw) To: jidanni; +Cc: bug-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 345 bytes --] > Principles: always offer at least two default choices, one > forwards/beneath, one backwards/beneath the cursor. The topmost of > which should be the closest to the cursor. Skip past punctuation at > the ends of sentences too... Does the attached patch obey these principles? I'm not quite sure which characters shall consitute punctuation. [-- Attachment #2: man.patch --] [-- Type: text/plain, Size: 3106 bytes --] *** man.el.~1.175.~ Sat Dec 8 10:07:02 2007 --- man.el Sun Dec 16 11:06:08 2007 *************** *** 647,672 **** (defsubst Man-default-man-entry (&optional pos) "Make a guess at a default manual entry based on the text at POS. If POS is nil, the current point is used." ! (let (word) (save-excursion (if pos (goto-char pos)) ;; Default man entry title is any word the cursor is on, or if ! ;; cursor not on a word, then nearest preceding word. ! (skip-chars-backward "-a-zA-Z0-9._+:") ! (let ((start (point))) ! (skip-chars-forward "-a-zA-Z0-9._+:") ! ;; If there is a continuation at the end of line, check the ! ;; following line too, eg: ! ;; see this- ! ;; command-here(1) ! (setq word (buffer-substring-no-properties start (point))) ! (if (looking-at "[ \t\r\n]+\\([-a-zA-Z0-9._+:]+\\)([0-9])") ! (setq word (concat word (match-string 1))))) ! (if (string-match "[._]+$" word) ! (setq word (substring word 0 (match-beginning 0)))) ;; If looking at something like *strcat(... , remove the '*' ! (if (string-match "^*" word) ! (setq word (substring word 1))) ;; If looking at something like ioctl(2) or brc(1M), include the ;; section number in the returned value. Remove text properties. (concat word --- 647,685 ---- (defsubst Man-default-man-entry (&optional pos) "Make a guess at a default manual entry based on the text at POS. If POS is nil, the current point is used." ! (let (word start original-pos distance) (save-excursion (if pos (goto-char pos)) ;; Default man entry title is any word the cursor is on, or if ! ;; cursor not on a word, nearest preceding or next word on this ! ;; line. ! (if (not (zerop (skip-chars-backward "-a-zA-Z0-9._+:"))) ! (setq start (point)) ! (setq original-pos (point)) ! (setq distance (abs (skip-chars-backward " \t"))) ! (if (not (zerop (skip-chars-backward "-a-zA-Z0-9._+:"))) ! (progn ! (setq start (point)) ! (goto-char original-pos) ! (if (and (< (skip-chars-forward " \t") distance) ! (looking-at "[-a-zA-Z0-9._+:]")) ! (setq start (point)) ! (goto-char start))) ! (skip-chars-forward " \t") ! (setq start (point)))) ! (skip-chars-forward "-a-zA-Z0-9._+:") ! (setq word (buffer-substring-no-properties start (point))) ! ;; If there is a continuation at the end of line, check the ! ;; following line too, eg: ! ;; see this- ! ;; command-here(1) ! (when (looking-at "[ \t\r\n]+\\([-a-zA-Z0-9._+:]+\\)([0-9])") ! (setq word (concat word (match-string-no-properties 1)))) ! (when (string-match "[._]+$" word) ! (setq word (substring word 0 (match-beginning 0)))) ;; If looking at something like *strcat(... , remove the '*' ! (when (string-match "^*" word) ! (setq word (substring word 1))) ;; If looking at something like ioctl(2) or brc(1M), include the ;; section number in the returned value. Remove text properties. (concat word ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: M-x man could better guess neighboring word 2007-12-16 10:11 ` martin rudalics @ 2007-12-17 13:38 ` jidanni 2007-12-17 22:19 ` martin rudalics 0 siblings, 1 reply; 7+ messages in thread From: jidanni @ 2007-12-17 13:38 UTC (permalink / raw) To: bug-gnu-emacs mr> Does the attached patch obey these principles? I'm not quite sure mr> which characters shall consitute punctuation. patching file man.el Hunk #1 FAILED at 647. Never mind, I trust you, and thanks for the effort. I'm a pure Debian sid shop, not current fresh version, and... trust you thanks. P.S., given a non-existent page, (man "hahaha") Loading man...done Invoking man hahaha in the background Please wait: formatting the hahaha man page... hahaha man page formatted error in process sentinel: Man-bgproc-sentinel: Can't find the hahaha manpage Odd, it talks with so much confidence, but then it can't find the meatloaf it says it just baked. I guess that's how asynchronous messages work. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: M-x man could better guess neighboring word 2007-12-17 13:38 ` jidanni @ 2007-12-17 22:19 ` martin rudalics 2007-12-18 1:53 ` jidanni 0 siblings, 1 reply; 7+ messages in thread From: martin rudalics @ 2007-12-17 22:19 UTC (permalink / raw) To: jidanni; +Cc: bug-gnu-emacs > mr> I'm not quite sure > mr> which characters shall consitute punctuation. You didn't state anything here. Is ", \t" sufficient or shall I skip something else? ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: M-x man could better guess neighboring word 2007-12-17 22:19 ` martin rudalics @ 2007-12-18 1:53 ` jidanni 0 siblings, 0 replies; 7+ messages in thread From: jidanni @ 2007-12-18 1:53 UTC (permalink / raw) To: bug-gnu-emacs r> which characters shall consitute punctuation. r> You didn't state anything here. Is ", \t" sufficient or shall I r> skip something else? Perhaps use some emacs syntax table definition of punctuation... or OK, I mean anything that wouldn't be part of a man page name. Hmmm, I recall I've never seen commas in man page names, but have seen lots of : and - and _. Regarding ".", I've only seen it with a man page name, not at the edges... Sorry I can't be more helpful. Hmmm, $ apropos . gives lots of man page names to test on. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-12-18 1:53 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-12-14 8:07 M-x man could better guess neighboring word jidanni 2007-12-14 9:40 ` martin rudalics 2007-12-15 1:33 ` jidanni 2007-12-16 10:11 ` martin rudalics 2007-12-17 13:38 ` jidanni 2007-12-17 22:19 ` martin rudalics 2007-12-18 1:53 ` jidanni
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).