I tried using ac-html
recently since I'm an auto-complete
user and I'd like to have HTML completion in html-mode
and web-mode
buffers. However, it has been acting somewhat strangely and throws an error whenever I type anything in an html-mode
or web-mode
buffer:
auto-complete error: (args-out-of-range <name-of-current-buffer> 0 2)
As a result of this error, auto-complete-mode
is disabled in the current buffer. However, perhaps even more strangely, if I turn on auto-complete-mode
after it was disabled by the error, everything works as expected and I get auto-completion. Yet, this only seems to happen in html-mode
buffers; i.e., I do not get auto-completion after re-enabling auto-complete-mode
in web-mode
buffers.
I have ac-html
set up for both html-mode
and web-mode
like so in my init files:
;; Better completion for html-mode
(defun setup-ac-for-html ()
(require 'ac-html)
(require 'ac-html-default-data-provider)
(ac-html-enable-data-provider 'ac-html-default-data-provider)
(ac-html-setup)
(setq ac-sources '(ac-source-html-tag
ac-source-html-attr
ac-source-html-attrv)))
;; Better completion for web-mode
(defun setup-ac-for-web-mode ()
(require 'ac-html)
(require 'ac-html-default-data-provider)
(add-to-list 'web-mode-ac-sources-alist
'("html" . (ac-source-html-tag
ac-source-html-attr
ac-source-html-attrv))))
...
(add-hook 'html-mode-hook 'setup-ac-for-html)
(add-hook 'web-mode-before-auto-complete-hooks 'setup-ac-for-web-mode)
How can I get this error to stop happening so that I don't have to re-enable auto-complete-mode
after said error? Also, why does this re-enabling seemingly not work for web-mode
?
I'm using Emacs 25.1.1 on OS X 10.11.6.