Subject: 24.0.50; eldoc-documentation-function only called when changing line
From: Tassilo Horn <[email-masked]>
To: [email-masked]
Date: Mon, 31 May 2010 14:31:55 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

In a home-brewn language mode, I use the eldoc facilties.

--8<---------------cut here---------------start------------->8---
(defun tg-documentation-function ()
  (message "Called!")
  (let ((thing (thing-at-point 'sexp)))
    (if (string= thing tg--last-thing)
        tg--last-doc
      (setq tg--last-thing thing)
      (let ((eid (tg-edge-p))
            (vid (tg-vertex-p)))
        (cond
         ((tg-incidence-list-p)
          (tg-eldoc-incidence))
         (eid
          (tg-eldoc-vertex-or-edge-at-point 'EdgeClass))
         (vid
          (tg-eldoc-vertex-or-edge-at-point 'VertexClass))
         (t
          (setq tg--last-doc nil))))
      tg--last-doc)))

(defun tg-eldoc-init ()
  (set (make-local-variable 'eldoc-documentation-function)
       'tg-documentation-function)
  (add-hook 'after-save-hook
            'tg-init-schema nil t)
  (tg-init-schema))
--8<---------------cut here---------------end--------------->8---

This worked very nice some time ago, but now my documentation function
is only called if point changes the line, but not on point movement on
the current line.

In GNU Emacs 24.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 2.18.9)
 of 2010-05-30 on thinkpad
Windowing system distributor `The X.Org Foundation', version 11.0.10801000
configured using `configure  '--prefix=/usr' '--build=x86_64-pc-linux-gnu' '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--libdir=/usr/lib64' '--program-suffix=-emacs-24' '--infodir=/usr/share/info/emacs-24' '--with-crt-dir=/usr/lib64' '--with-sound' '--with-x' '--without-gconf' '--without-toolkit-scroll-bars' '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xpm' '--with-xft' '--with-libotf' '--with-m17n-flt' '--with-x-toolkit=gtk' '--without-hesiod' '--without-kerberos' '--without-kerberos5' '--with-gpm' '--with-dbus' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'CFLAGS=-march=native -O2 -pipe' 'LDFLAGS=-Wl,-z,lazy''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Help

Minor modes in effect:
  shell-dirtrack-mode: t
  recentf-mode: t
  window-number-meta-mode: t
  window-number-mode: t
  exec-abbrev-cmd-mode: t
  global-subword-mode: t
  subword-mode: t
  savehist-mode: t
  show-paren-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  view-mode: t

Recent input:
<left> <left> <up> <down> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> C-x b <return> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> C-a 
C-k C-k C-x C-s <up> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <C-f8> <up> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> C-h 
v <return> <help-echo> <down-mouse-5> <mouse-5> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> C-x 
b C-g <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
ESC [ > 0 ; 1 1 5 ; 0 c C-s e l d o c C-g C-g C-x k 
RET C-g C-x # <help-echo> <down-mouse-1> <mouse-1> 
<down-mouse-1> <mouse-1> <C-f8> <C-f8> <down> <left> 
<C-f8> <right> <right> <right> <right> <right> <return> 
<tab> ( M e s s <backspace> <backspace> <backspace> 
<backspace> m a s s <backspace> <backspace> <backspace> 
e s s <M-tab> SPC " C a l l e r <backspace> d ! <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <up> <left> C-x C-e C-x b <return> <up> <down> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> C-a <right> <right> 
<right> <right> <right> <right> <right> <help-echo> 
<down-mouse-1> <mouse-1> <help-echo> M-x r e b <re
turn>

Recent messages:
Quit
Loading vc-bzr...done
When done with a buffer, type C-x #
Quit
Buffer `ChangeLog' still has clients; kill it? (y or n) 
Quit
Mark set [2 times]
tg-documentation-function
Called! [2 times]
byte-code: Beginning of buffer

Load-path shadows:
~/repos/el/org-mode/lisp/org-mouse hides /usr/share/emacs/24.0.50/lisp/org/org-mouse
~/repos/el/org-mode/lisp/org-clock hides /usr/share/emacs/24.0.50/lisp/org/org-clock
~/repos/el/org-mode/lisp/org-vm hides /usr/share/emacs/24.0.50/lisp/org/org-vm
~/repos/el/org-mode/lisp/org-table hides /usr/share/emacs/24.0.50/lisp/org/org-table
~/repos/el/org-mode/lisp/org-compat hides /usr/share/emacs/24.0.50/lisp/org/org-compat
~/repos/el/org-mode/lisp/org-bbdb hides /usr/share/emacs/24.0.50/lisp/org/org-bbdb
~/repos/el/org-mode/lisp/org-habit hides /usr/share/emacs/24.0.50/lisp/org/org-habit
~/repos/el/org-mode/lisp/org-agenda hides /usr/share/emacs/24.0.50/lisp/org/org-agenda
~/repos/el/org-mode/lisp/org-mhe hides /usr/share/emacs/24.0.50/lisp/org/org-mhe
~/repos/el/org-mode/lisp/org-beamer hides /usr/share/emacs/24.0.50/lisp/org/org-beamer
~/repos/el/org-mode/lisp/org-remember hides /usr/share/emacs/24.0.50/lisp/org/org-remember
~/repos/el/org-mode/lisp/org-ctags hides /usr/share/emacs/24.0.50/lisp/org/org-ctags
~/repos/el/org-mode/lisp/org-mobile hides /usr/share/emacs/24.0.50/lisp/org/org-mobile
~/repos/el/org-mode/lisp/org-macs hides /usr/share/emacs/24.0.50/lisp/org/org-macs
~/repos/el/org-mode/lisp/org-gnus hides /usr/share/emacs/24.0.50/lisp/org/org-gnus
~/repos/el/org-mode/lisp/org-protocol hides /usr/share/emacs/24.0.50/lisp/org/org-protocol
~/repos/el/org-mode/lisp/org-irc hides /usr/share/emacs/24.0.50/lisp/org/org-irc
~/repos/el/org-mode/lisp/org-indent hides /usr/share/emacs/24.0.50/lisp/org/org-indent
~/repos/el/org-mode/lisp/org-jsinfo hides /usr/share/emacs/24.0.50/lisp/org/org-jsinfo
~/repos/el/org-mode/lisp/org-colview hides /usr/share/emacs/24.0.50/lisp/org/org-colview
~/repos/el/org-mode/lisp/org-bibtex hides /usr/share/emacs/24.0.50/lisp/org/org-bibtex
~/repos/el/org-mode/lisp/org-html hides /usr/share/emacs/24.0.50/lisp/org/org-html
~/repos/el/org-mode/lisp/org-inlinetask hides /usr/share/emacs/24.0.50/lisp/org/org-inlinetask
~/repos/el/org-mode/lisp/org-mac-message hides /usr/share/emacs/24.0.50/lisp/org/org-mac-message
~/repos/el/org-mode/lisp/org-publish hides /usr/share/emacs/24.0.50/lisp/org/org-publish
~/repos/el/org-mode/lisp/org-timer hides /usr/share/emacs/24.0.50/lisp/org/org-timer
~/repos/el/org-mode/lisp/org-icalendar hides /usr/share/emacs/24.0.50/lisp/org/org-icalendar
~/repos/el/org-mode/lisp/org-exp-blocks hides /usr/share/emacs/24.0.50/lisp/org/org-exp-blocks
~/repos/el/org-mode/lisp/org-entities hides /usr/share/emacs/24.0.50/lisp/org/org-entities
~/repos/el/org-mode/lisp/org-footnote hides /usr/share/emacs/24.0.50/lisp/org/org-footnote
~/repos/el/org-mode/lisp/org-plot hides /usr/share/emacs/24.0.50/lisp/org/org-plot
~/repos/el/org-mode/lisp/org-exp hides /usr/share/emacs/24.0.50/lisp/org/org-exp
~/repos/el/org-mode/lisp/org-archive hides /usr/share/emacs/24.0.50/lisp/org/org-archive
~/repos/el/org-mode/lisp/org-id hides /usr/share/emacs/24.0.50/lisp/org/org-id
~/repos/el/org-mode/lisp/org-faces hides /usr/share/emacs/24.0.50/lisp/org/org-faces
~/repos/el/org-mode/lisp/org-mew hides /usr/share/emacs/24.0.50/lisp/org/org-mew
~/repos/el/org-mode/lisp/org-datetree hides /usr/share/emacs/24.0.50/lisp/org/org-datetree
~/repos/el/org-mode/lisp/org-rmail hides /usr/share/emacs/24.0.50/lisp/org/org-rmail
~/repos/el/org-mode/lisp/org-list hides /usr/share/emacs/24.0.50/lisp/org/org-list
~/repos/el/org-mode/lisp/org-info hides /usr/share/emacs/24.0.50/lisp/org/org-info
~/repos/el/org-mode/lisp/org-wl hides /usr/share/emacs/24.0.50/lisp/org/org-wl
~/repos/el/org-mode/lisp/org-attach hides /usr/share/emacs/24.0.50/lisp/org/org-attach
~/repos/el/org-mode/lisp/org hides /usr/share/emacs/24.0.50/lisp/org/org
~/repos/el/org-mode/lisp/org-docview hides /usr/share/emacs/24.0.50/lisp/org/org-docview
~/repos/el/org-mode/lisp/org-latex hides /usr/share/emacs/24.0.50/lisp/org/org-latex
~/repos/el/org-mode/lisp/org-xoxo hides /usr/share/emacs/24.0.50/lisp/org/org-xoxo
~/repos/el/org-mode/lisp/org-freemind hides /usr/share/emacs/24.0.50/lisp/org/org-freemind
~/repos/el/org-mode/lisp/org-install hides /usr/share/emacs/24.0.50/lisp/org/org-install
~/repos/el/org-mode/lisp/org-ascii hides /usr/share/emacs/24.0.50/lisp/org/org-ascii
~/repos/el/org-mode/lisp/org-feed hides /usr/share/emacs/24.0.50/lisp/org/org-feed
~/repos/el/org-mode/lisp/org-w3m hides /usr/share/emacs/24.0.50/lisp/org/org-w3m
~/repos/el/org-mode/lisp/org-docbook hides /usr/share/emacs/24.0.50/lisp/org/org-docbook
~/repos/el/org-mode/lisp/org-crypt hides /usr/share/emacs/24.0.50/lisp/org/org-crypt
~/repos/el/org-mode/lisp/org-src hides /usr/share/emacs/24.0.50/lisp/org/org-src

Features:
(shadow emacsbug vc-bzr sha1 hex-util add-log tramp-imap tramp-gw
tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp shell
tramp-compat trampver etags debug cl-specs edebug find-func icalendar
org-icalendar cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs find-dired grep sgml-mode nxml-uchnm rng-xsd
xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse
nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode
nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok hippie-exp
vc-dispatcher vc-svn newcomment flow-fill sort gnus-cite ansi-color
gnus-bcklg gnus-async gnus-ml qp gnus-topic parse-time nnml auth-source
netrc nndraft nnmh nnnil gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg nntp gnus-cache multi-isearch epa-file epa epg
greqlscript-mode greql-mode tg-mode generic th-latex paredit wtf
cus-edit cus-start cus-load rdictcc solar cal-dst holidays hol-loaddefs
appt diary-lib diary-loaddefs vc-git hl-line org-w3m org-irc org-jsinfo
org-infojs org-html org-exp org-exp-blocks org-info org-gnus org-docview
org-bibtex org-bbdb org-protocol org-attach org-id org-agenda remember
org-remember org-datetree org org-footnote org-src org-list org-faces
org-compat org-entities org-macs org-install cal-menu calendar
cal-loaddefs dired-x dired-aux pcomplete em-term term ehelp electric
esh-var esh-io esh-cmd esh-ext esh-proc esh-arg eldoc esh-groups eshell
esh-util esh-module esh-mode th-boxquote boxquote rect highlight-symbol
hi-lock footnote smtpmail ecomplete bbdb-hooks bbdb-gnus gnus-art mm-uu
mml2015 epg-config mm-view smime password-cache dig gnus-sum nnoo
gnus-group time-date gnus-undo nnmail mail-source format-spec gnus-start
gnus-spec gnus-int gnus-range message idna sendmail mml mml-sec
mm-decode mm-bodies mm-encode gmm-utils mailheader gnus-win bbdb-snarf
mail-extr rfc822 bbdb-com warnings mailabbrev info edit-server server
yasnippet dropdown-list help-mode view noutline outline browse-kill-ring
derived recentf tree-widget sr-speedbar speedbar sb-image ezimage dframe
assoc ido anything-config compile comint ring semantic/util-modes
semantic/util semantic semantic/tag semantic/lex semantic/fw eieio
byte-opt bytecomp byte-compile mode-local cedet imenu w3m-bookmark w3m
browse-url doc-view easymenu jka-compr image-mode w3m-hist w3m-fb
w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util bookmark pp
dired rx ffap thingatpt anything window-number uniquify exec-abbrev-cmd
easy-mmode cl cl-19 subword saveplace savehist paren th-private edmacro
kmacro th-common mm-url gnus gnus-ems nnheader gnus-util mail-utils
wid-edit url-http tls url url-proxy url-privacy url-expand url-methods
url-history mailcap url-auth mail-parse rfc2231 rfc2047 rfc2045
ietf-drums url-cookie url-util url-parse url-gw url-vars mm-util
mail-prsvr windmove disp-table swank-clojure-autoloads advice help-fns
advice-preload clojure-mode-autoloads slime-repl-autoloads
slime-autoloads package reporter site-gentoo w3m-load preview-latex
bbdb-autoloads bbdb regexp-opt timezone tex-site auto-loads tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer
select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face files text-properties overlay md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting font-render-setting gtk
x-toolkit x multi-tty emacs)