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.