hchbaw/anything-c-javadoc.el

wrong-type-argument stringp nil when opening a url

Closed this issue · 3 comments

インストールし、次の設定で利用しようとしたところ、表題のエラーが出ます。

(setq anything-c-javadoc-dirs '("http://java.sun.com/javase/6/docs/api/"))

acjd-source-base-indexes 内の (get-text-property 0 'acjd-dirname c) で、URLの取得に失敗し、nil になっているためのようです。

なにが原因と考えられますでしょうか。
環境は Ubuntu 10.04, Emacs 23.1.1 です。

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  string-match("[,)$]" nil 0)
  browse-url-url-encode-chars(nil "[,)$]")
  browse-url-encode-url(nil)
  browse-url-firefox(nil nil)
  apply(browse-url-firefox nil nil)
  browse-url-default-browser(nil nil)
  apply(browse-url-default-browser nil nil)
  browse-url(nil)
  (lambda (c) (browse-url (get-text-property 0 ... c)))("AssertionError#AssertionError()")
  apply((lambda (c) (browse-url (get-text-property 0 ... c))) "AssertionError#AssertionError()")
  anything-funcall-with-source(((match identity) (search anything-exact-search anything-mp-3p-search anything-mp-3-search) (name . "Javadocs (indexes)") (init lambda nil (acjd-initialize-candidate-buffer-maybe anything-c-javadoc-dirs anything-c-javadoc-indexes-candidate-buffer-name anything-c-javadoc-indexes-cache-filename ...)) (candidates-in-buffer) (get-line . buffer-substring) (requires-pattern . 3) (action ("Browse" lambda ... ...) ("Browse class" lambda ... ...) ("Browse package" lambda ... ...) ("Insert name at point" lambda ... ...) ("Insert class name at point" lambda ... ...) ("Insert fully qualified class name at point" lambda ... ...) ("Copy name in kill-ring" lambda ... ...) ("Copy class name in kill-ring" lambda ... ...) ("Copy fully qualified class name in kill-ring" lambda ... ...)) (header-line . anything-persistent-help-string) (candidates . anything-candidates-in-buffer) (volatile) (match identity)) (lambda (c) (browse-url (get-text-property 0 ... c))) "AssertionError#AssertionError()")
  anything-execute-selection-action()
  anything-execute-selection-action-1()
  byte-code(...)
  anything-internal((anything-c-source-javadoc-indexes anything-c-source-javadoc-classes) nil nil nil nil "*anything javadoc*")
  apply(anything-internal ((anything-c-source-javadoc-indexes anything-c-source-javadoc-classes) nil nil nil nil "*anything javadoc*"))
  anything((anything-c-source-javadoc-indexes anything-c-source-javadoc-classes) nil nil nil nil "*anything javadoc*")
  anything-c-javadoc()
  call-interactively(anything-c-javadoc)
  anything-execute-extended-command()
  call-interactively(anything-execute-extended-command nil nil)

詳細なレポート、どうもありがとうございます!
そして、ごめんなさい。

自分で使わしてもらっているanything.elがずいぶん古くって、うちではエラーが出てなかったみたいです…
手元では直っているつもりなので、お手すきの時に試してみていただけますでしょうか、おねがいしますm(__)m

早速の対応ありがとうございます。

しかし、やはり同様の問題が発生します。

私の環境で get-text-property 周辺がまともに動作していないのかもしれません。
#2 と合わせて、自分でも中をみて、代替策を探してみたいと思います。

https://github.com/tomykaira/anything-c-javadoc.el/tree/no-text-property-poc

ためしに classes のほうをやってみました。
かなり無茶苦茶なことをやっていますが…