カーソル位置のトークンを取得する

(タグジャンプの時のように) find-grep にカーソル位置のトークンを自動的に渡したくて、gtags-current-token を参考に、以下のような elisp を作っていたけど、これって thing-at-point でできるのね。

(defun my-get-current-token ()
  (cond
   ((looking-at "[0-9A-Za-z_-]")
    (while (looking-at "[0-9A-Za-z_-]")
      (backward-char 1))
    (forward-char 1))
   (t
    (while (looking-at "[ \t]")
      (forward-char 1))))
  (if (looking-at "[A-Za-z_-][A-Za-z_0-9-]*")
      (buffer-substring (match-beginning 0) (match-end 0))))
(thing-at-point 'symbol)

車輪の再発明だったかもしれないけど、トークン取得のアルゴリズムを調べられたのはよかった。
Emacs Lisp Idioms は勉強になる。