by shigemk2

当面は技術的なことしか書かない

jde-modeでauto-completeを使いたかった

jde-modeを使っていて直面した問題

  • 素のjde-modeの補完機能を使おうとしても No completion at this pointって言われる
  • 素のjde-modeの補完を呼び出すキーバインドがC-c C-v C-.とかだったりしてあんまり直感的ではない
  • jde-modeとjava-mode、一方を立ち上げるともう一方が無効になるっぽい
  • jde-modeを立ち上げるとajc-java-completeも動かない

解決さしてみる

jde-mode の情報源に辞書を追加。 - GONE WITH THE MEDICINE

要するに、java-modeの辞書をjde-modeの辞書として使えばいいんじゃね?っていう。

  1. auto-completeのdictディレクトリを覗いてみる
/Users/shige/.emacs.d/elisp/auto-complete/dict $ ls
ada-mode           caml-mode          coq-mode           go-mode            javascript-mode    php-mode           scheme-mode        tcl-mode           verilog-mode
c++-mode           clojure-mode       css-mode           haskell-mode       lua-mode           python-mode        sclang-mode        ts-mode
c-mode             clojurescript-mode erlang-mode        java-mode          motion-mode        ruby-mode          sh-mode            tuareg-mode
  1. java-modeをjde-modeでコピー

  2. init.elに以下を書き込む

(defun my-jde-mode-hook-func ()
  (interactive)
  ;; ...
  (when (and (require 'auto-complete) (require 'auto-complete-config))
    (make-local-variable 'ac-sources)
    (setq ac-sources '(ac-source-dictionary ;; <-- これを追加
                       ac-source-abbrev))
    (setq ac-auto-start 1)))

(add-hook 'jde-mode-hook 'my-jde-mode-hook-func)