Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

auto-complete-mode併用時、post-command-hookでのエラー #31

Open
zk-phi opened this issue Jul 2, 2013 · 2 comments
Open

auto-complete-mode併用時、post-command-hookでのエラー #31

zk-phi opened this issue Jul 2, 2013 · 2 comments
Assignees

Comments

@zk-phi
Copy link

zk-phi commented Jul 2, 2013

以下のような設定で、

  (defun my-coq-smart-pipes ()
    "insert pipe surrounded by spaces, and reindent"
    (interactive)
    (if (looking-back "\\[")
        ;; empty list delimiter
        (insert "| ")
      ;; guard
      (insert (concat (if (looking-back " ") "" " ")
                      "|"
                      (if (looking-at " ") "" " "))))
    (save-excursion (smie-indent-line)))

  (defun my-install-coq-smartchr ()

    (key-combo-define-local (kbd "|") '(my-coq-smart-pipes))
    (key-combo-define-local (kbd ":") '(" : " " :: "))
    (key-combo-define-local (kbd ":=") " := ")
    (key-combo-define-local (kbd "=") " = ")

    (key-combo-define-local (kbd "->") " -> ")
    (key-combo-define-local (kbd "<-") " <- ")
    (key-combo-define-local (kbd "/\\") " /\\ ")
    (key-combo-define-local (kbd "\\/") " \\/ ")
    (key-combo-define-local (kbd "|-") " |- ")
    (key-combo-define-local (kbd "|=") " |= ")

    (key-combo-define-local (kbd "=>") " => ")
    (key-combo-define-local (kbd ":<") " :< ")
    (key-combo-define-local (kbd ":>") " :> ")

    (key-combo-define-local (kbd "<") " < ")
    (key-combo-define-local (kbd "<=") " <= ")
    (key-combo-define-local (kbd ">") " > ")
    (key-combo-define-local (kbd ">=") " >= ")
    (key-combo-define-local (kbd "+") '(" + " "+"))
    (key-combo-define-local (kbd "-") '(" - " "-"))
    (key-combo-define-local (kbd "*") '(" * " "*")))

次のようなコードを入力しようとした際、

Theorem andb_true_elim2 : forall b c : bool,
  andb b c = true -> c = true.

->の「>」を入力したタイミングでエラー、「Changes to be undone are outside visible portion of buffer」が起こりました。post-command-hookを使っているプラグインをそれぞれ外して試してみたところ、どうやらauto-complete-modeとの併用時に問題が起こるようです。実際、auto-complete、key-combo、coq-mode(proof general)のみがインストールされたemacs 23.3で同様のエラーが起こることを確認しました。また、auto-completeのac-auto-startをnilにし補完が行われないよう設定すると、問題は起こらなくなりました。

どちらも重宝しているプラグインなので、なんとか両立ができるとありがたいなと思います。
確認お願いいたします。

@ghost ghost assigned uk-ar Jul 3, 2013
@uk-ar
Copy link
Owner

uk-ar commented Jul 3, 2013

不具合報告、ありがとうございます。auto-completeとの併用できないのは辛いですね...
上記の設定はまだ試していませんので、早めに試してみたいと思います。
(私の環境でもauto-completeを使用していますが、見たことがないエラーです)

もし時間がありましたら、

  1. (marmaladeではなく)github上のkey-comboを試す
    marmaladeにあるものから大きく変更が入ってます
  2. auto-completeの後にkey-comboをrequireする
    post-command-hookの実行順番が関係しているかもしれない

あたりを試していただけるとありがたいです。

@zk-phi
Copy link
Author

zk-phi commented Jul 6, 2013

ありがとうございます。

key-comboのロードを遅らせても同様の問題が起こりました。
プラグインの更新はMELPAのほうを見ているので、おそらくgithubに上がっている版になっていかると思います。auto-completeも同様です。

バッファの末尾以外では問題なく入力できるようです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants