Eliminado web-mode en favor de multi-web-mode.

This commit is contained in:
kj 2020-08-04 01:05:30 -04:00
parent 391a752f61
commit 82819b9ea3
3161 changed files with 555 additions and 24732 deletions

View File

@ -1,103 +0,0 @@
;;; ac-haml.el --- auto complete source for html tag and attributes
;; Copyright (C) 2014 - 2015 Zhang Kai Yu
;; Author: Zhang Kai Yu <yeannylam@gmail.com>
;; Keywords: html, auto-complete, rails, ruby
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; Configuration:
;;
;;; Code:
(require 'ac-html-core)
(require 'ac-slim) ;; haml and slim share some common things
(defun ac-haml-attr-prefix ()
(if (or (ac-slim-inside-ruby-code)
(ac-slim-inside-non-slim-block))
nil
(save-restriction
(save-excursion
(narrow-to-region
(line-beginning-position) (line-end-position))
(let ((origin (point)) (right nil) (left nil) (thing nil))
;; Go to next whitespace or line end
(re-search-forward "\\( \\|$\\)" nil t)
(if (equal (char-before) ? )
(backward-char))
(setq right (point))
(goto-char origin)
;; Go to previous whitespace or line beginning
(re-search-backward "\\( \\|^\\)" nil t)
(if (equal (char-after) ? )
(forward-char))
(setq left (point))
;; Figure out what at point
(setq thing (buffer-substring-no-properties left right))
(if (string= (substring thing 0 1) ":")
(1+ left)
nil))))))
(defun ac-haml-attrv-prefix ()
(if (re-search-backward "\\w+ *=[>]? *[\"]\\([^\"]+[ ]\\|\\)\\(.*\\)" nil t)
(match-beginning 2)))
(defun ac-haml-class-prefix ()
(ac-slim-class-prefix))
(defun ac-haml-id-prefix ()
(ac-slim-id-prefix))
(defun ac-haml-current-tag ()
"Return current haml tag user is typing on."
(save-excursion
(save-match-data
(re-search-backward "^[\t ]*%\\(\\w+\\)" nil t)
(match-string 1))))
(defun ac-haml-current-tag ()
"Return current haml tag user is typing on."
(let* ((line (buffer-substring-no-properties (line-beginning-position)
(line-end-position)))
(match-result (s-match "^[\t ]*%\\(\\w+\\)" line)))
(if match-result
(nth 1 match-result)
"div")))
(defun ac-haml-current-attr ()
"Return current html tag's attribute user is typing on."
(save-excursion (re-search-backward "[^a-z-]\\([a-z-]+\\) *=" nil t))
(match-string 1))
(defun ac-haml-attrv-prefix ()
(if (re-search-backward "\\w+ *=[>]? *[\"]\\([^\"]+[ ]\\|\\)\\(.*\\)" nil t)
(match-beginning 2)))
(ac-html-define-ac-source "haml"
:tag-prefix "^[ \t]*%\\(.*\\)"
:attr-prefix ac-haml-attr-prefix
:attrv-prefix ac-haml-attrv-prefix
:class-prefix ac-haml-class-prefix
:id-prefix ac-haml-id-prefix
:current-tag-func ac-haml-current-tag
:current-attr-func ac-haml-current-attr)
(provide 'ac-haml)
;;; ac-haml.el ends here

View File

@ -1,90 +0,0 @@
;;; ac-html-autoloads.el --- automatically extracted autoloads
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "ac-haml" "ac-haml.el" (0 0 0 0))
;;; Generated autoloads from ac-haml.el
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-haml" '("ac-haml-")))
;;;***
;;;### (autoloads nil "ac-html" "ac-html.el" (0 0 0 0))
;;; Generated autoloads from ac-html.el
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-html" '("ac-html-")))
;;;***
;;;### (autoloads nil "ac-html-core" "ac-html-core.el" (0 0 0 0))
;;; Generated autoloads from ac-html-core.el
(autoload 'ac-html-define-data-provider "ac-html-core" "\
Define ac-html data provider with this macro.
This macro is buggy and cannot be used now.
\(fn PROVIDER &rest PAIRS)" nil t)
(function-put 'ac-html-define-data-provider 'lisp-indent-function '1)
(autoload 'ac-html-enable-data-provider "ac-html-core" "\
Enable data provider PROVIDER.
\(fn PROVIDER)" nil nil)
(autoload 'ac-html-define-ac-source "ac-html-core" "\
Define ac-html lang with this macro.
\(fn LANG &rest PAIRS)" nil t)
(function-put 'ac-html-define-ac-source 'lisp-indent-function '1)
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-html-core" '("ac-html-")))
;;;***
;;;### (autoloads nil "ac-html-default-data-provider" "ac-html-default-data-provider.el"
;;;;;; (0 0 0 0))
;;; Generated autoloads from ac-html-default-data-provider.el
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-html-default-data-provider" '("ac-html-" "web-completion-data-")))
;;;***
;;;### (autoloads nil "ac-html-testing-data-provider" "ac-html-testing-data-provider.el"
;;;;;; (0 0 0 0))
;;; Generated autoloads from ac-html-testing-data-provider.el
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-html-testing-data-provider" '("ac-html-testing-")))
;;;***
;;;### (autoloads nil "ac-jade" "ac-jade.el" (0 0 0 0))
;;; Generated autoloads from ac-jade.el
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-jade" '("ac-jade-")))
;;;***
;;;### (autoloads nil "ac-slim" "ac-slim.el" (0 0 0 0))
;;; Generated autoloads from ac-slim.el
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-slim" '("ac-slim-")))
;;;***
;;;### (autoloads nil nil ("ac-html-pkg.el") (0 0 0 0))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; ac-html-autoloads.el ends here

View File

@ -1,263 +0,0 @@
;;; ac-html-core.el --- auto complete html core -*- lexical-binding: t; -*-
;; Copyright (C) 2015 Zhang Kai Yu
;; Author: Zhang Kai Yu <yeannylam@gmail.com>
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(require 'auto-complete)
(require 'cl-lib)
(require 'dash)
;;; Customization
(defgroup auto-complete-html nil
"HTML Auto Complete."
:group 'auto-complete
:prefix "ac-html-")
;;; Variables
(defvar ac-html-data-providers nil "Completion data providers.")
(defvar-local ac-html-enabled-data-providers nil
"The enabled data providers of current buffer.")
(defvar-local ac-html-current-tag-function nil
"The function to find current tag.")
(defvar-local ac-html-current-attr-function nil
"The function to find current attr.")
;;; Provider
;;;###autoload
(defmacro ac-html-define-data-provider (provider &rest pairs)
"Define ac-html data provider with this macro.
This macro is buggy and cannot be used now."
(declare (indent 1) (debug t))
(let (tag-func attr-func attrv-func id-func class-func tag-doc-func
attr-doc-func attrv-doc-func id-doc-func class-doc-func)
(let (label value)
(while (not (= 0 (length pairs)))
(setq label (pop pairs))
(setq value (pop pairs))
(and (equal :tag-func label) (setq tag-func value))
(and (equal :attr-func label) (setq attr-func value))
(and (equal :attrv-func label) (setq attrv-func value))
(and (equal :id-func label) (setq id-func value))
(and (equal :class-func label) (setq class-func value))
(and (equal :tag-doc-func label) (setq tag-doc-func value))
(and (equal :attr-doc-func label) (setq attr-doc-func value))
(and (equal :attrv-doc-func label) (setq attrv-doc-func value))
(and (equal :id-doc-func label) (setq id-doc-func value))
(and (equal :class-doc-func label) (setq class-doc-func value))))
`(progn
(add-to-list 'ac-html-data-providers ,provider)
(put ,provider :tag-func ,tag-func)
(put ,provider :attr-func ,attr-func)
(put ,provider :attrv-func ,attrv-func)
(put ,provider :id-func ,id-func)
(put ,provider :class-func ,class-func)
(put ,provider :tag-doc-func ,tag-doc-func)
(put ,provider :attr-doc-func ,attr-doc-func)
(put ,provider :attrv-doc-func ,attrv-doc-func)
(put ,provider :id-doc-func ,id-doc-func)
(put ,provider :class-doc-func ,class-doc-func))))
;;;###autoload
(defun ac-html-enable-data-provider (provider)
"Enable data provider PROVIDER."
(add-to-list 'ac-html-enabled-data-providers provider))
(defun ac-html-query-data-provider (provider key)
(get provider key))
;;; Language (Adaptor)
;;;###autoload
(defmacro ac-html-define-ac-source (lang &rest pairs)
"Define ac-html lang with this macro."
(declare (indent 1) (debug t))
(let (tag-prefix attr-prefix attrv-prefix id-prefix class-prefix
current-tag-func current-attr-func)
(let (label value)
(while (not (= 0 (length pairs)))
(setq label (pop pairs))
(setq value (pop pairs))
(and (equal :tag-prefix label) (setq tag-prefix value))
(and (equal :attr-prefix label) (setq attr-prefix value))
(and (equal :attrv-prefix label) (setq attrv-prefix value))
(and (equal :id-prefix label) (setq id-prefix value))
(and (equal :class-prefix label) (setq class-prefix value))
(and (equal :current-tag-func label) (setq current-tag-func value))
(and (equal :current-attr-func label) (setq current-attr-func value))))
`(progn
(defun ,(intern (format "ac-%s-setup" lang)) ()
,(format "Setup for ac-html to provide completion for %s language." lang)
(setq ac-html-current-tag-function (quote ,current-tag-func))
(setq ac-html-current-attr-function (quote ,current-attr-func)))
,(if tag-prefix
`(ac-define-source ,(format "%s-%s" lang "tag")
'((candidates . ac-html-all-tag-candidates)
(prefix . ,tag-prefix)
(document . ac-html-tag-documentation)
(symbol . "t"))))
,(if attr-prefix
`(ac-define-source ,(format "%s-%s" lang "attr")
'((candidates . ac-html-all-attr-candidates)
(prefix . ,attr-prefix)
(document . ac-html-attr-documentation)
(symbol . "a"))))
,(if attrv-prefix
`(ac-define-source ,(format "%s-%s" lang "attrv")
'((candidates . ac-html-all-attrv-candidates)
(prefix . ,attrv-prefix)
(document . ac-html-attrv-documentation)
(symbol . "v"))))
,(if id-prefix
`(ac-define-source ,(format "%s-%s" lang "id")
'((candidates . ac-html-all-id-candidates)
(prefix . ,id-prefix)
(document . ac-html-id-documentation)
(symbol . "i"))))
,(if class-prefix
`(ac-define-source ,(format "%s-%s" lang "class")
'((candidates . ac-html-all-class-candidates)
(prefix . ,class-prefix)
(document . ac-html-class-documentation)
(symbol . "c"))))
)))
;;; Data
(defun ac-html-all-tag-candidates ()
"All tag candidates get from data providers."
(let (list func)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :tag-func))
(if func (setq list (-concat list (funcall func)))))
list))
(defun ac-html-all-attr-candidates ()
"All attr candidates get from data providers."
(let (list func tag)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :attr-func))
(setq tag (funcall ac-html-current-tag-function))
(if func (setq list (-concat list (funcall func tag)))))
list))
(defun ac-html-all-attrv-candidates ()
"All attrv candidates get from data providers."
(let (list func tag attr)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :attrv-func))
(setq tag (funcall ac-html-current-tag-function))
(setq attr (funcall ac-html-current-attr-function))
(if func (setq list (-concat list (funcall func tag attr)))))
(if (string= attr "class")
(setq list (-concat list (ac-html-all-class-candidates))))
(if (string= attr "id")
(setq list (-concat list (ac-html-all-id-candidates))))
list))
(defun ac-html-all-id-candidates ()
""
(let (list func)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :id-func))
(if func (setq list (-concat list (funcall func)))))
list))
(defun ac-html-all-class-candidates ()
""
(let (list func)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :class-func))
(if func (setq list (-concat list (funcall func)))))
list))
(defun ac-html-tag-documentation (tag)
"Not documented yet."
(catch 'return-val
(let (doc func)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :tag-doc-func))
(if func
(progn
(setq doc (funcall func tag))
(if doc (throw 'return-val doc))))))))
(defun ac-html-attr-documentation (attr)
"Not documented yet."
(catch 'return-val
(let (doc func tag)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :attr-doc-func))
(if func
(progn
(setq tag (funcall ac-html-current-tag-function))
(setq doc (funcall func tag attr))
(if doc (throw 'return-val doc))))))))
(defun ac-html-attrv-documentation (attrv)
"Not documented yet."
(catch 'return-val
(let (doc func tag attr)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :attrv-doc-func))
(if func
(progn
(setq tag (funcall ac-html-current-tag-function))
(setq attr (funcall ac-html-current-attr-function))
(setq doc (funcall func tag attr attrv))
(if doc (throw 'return-val doc)))))
(if (string= attr "class")
(throw 'return-val (ac-html-class-documentation attrv)))
(if (string= attr "id")
(throw 'return-val (ac-html-id-documentation attrv))))))
(defun ac-html-id-documentation (id)
""
(catch 'return-val
(let (doc func)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :id-doc-func))
(if func
(progn
(setq doc (funcall func id))
(if doc (throw 'return-val doc))))))))
(defun ac-html-class-documentation (class)
""
(catch 'return-val
(let (doc func)
(dolist (provider ac-html-enabled-data-providers)
(setq func (ac-html-query-data-provider provider :class-doc-func))
(if func
(progn
(setq doc (funcall func class))
(if doc (throw 'return-val doc))))))))
(provide 'ac-html-core)
;;; ac-html-core.el ends here

View File

@ -1,139 +0,0 @@
(require 'ac-html-core)
(require 'f)
;;; web-completion-data helpers
(defconst web-completion-data-package-dir
(file-name-directory (or load-file-name (buffer-file-name)))
"The directory where `web-completion-data' package exists.")
(defconst web-completion-data-html-source-dir
(expand-file-name "completion-data" web-completion-data-package-dir)
"The directory where basic completion source of `web-completion-data'
exists.")
(defconst web-completion-data-tag-list-file
(f-expand "html-tag-list" web-completion-data-html-source-dir))
(defconst web-completion-data-tag-doc-dir
(f-expand "html-tag-short-docs" web-completion-data-html-source-dir))
(defun web-completion-data-tag-doc-file (tag)
(f-expand tag web-completion-data-tag-doc-dir))
(defconst web-completion-data-attr-list-dir
(f-expand "html-attributes-list" web-completion-data-html-source-dir))
(defconst web-completion-data-attr-global-list-file
(f-expand "global" web-completion-data-attr-list-dir))
(defun web-completion-data-attr-list-file (tag)
(f-expand tag web-completion-data-attr-list-dir))
(defconst web-completion-data-attr-doc-dir
(f-expand "html-attributes-short-docs" web-completion-data-html-source-dir))
(defun web-completion-data-attr-global-doc-file (attr)
(f-expand (format "global-%s" attr) web-completion-data-attr-doc-dir))
(defun web-completion-data-attr-doc-file (tag attr)
(f-expand (format "%s-%s" tag attr) web-completion-data-attr-doc-dir))
(defconst web-completion-data-attrv-list-dir
(f-expand "html-attrv-list" web-completion-data-html-source-dir))
(defun web-completion-data-attrv-list-file (tag attr)
(f-expand (format "%s-%s" tag attr) web-completion-data-attrv-list-dir))
(defun web-completion-data-attrv-global-list-file (attr)
(f-expand (format "global-%s" attr) web-completion-data-attrv-list-dir))
(defconst web-completion-data-attrv-doc-dir
(f-expand "html-attrv-docs" web-completion-data-html-source-dir))
(defun web-completion-data-attrv-global-doc-file (attr attrv)
(f-expand (format "global-%s-%s" attr (url-hexify-string attrv))
web-completion-data-attrv-doc-dir))
(defun web-completion-data-attrv-doc-file (tag attr attrv)
(f-expand (format "%s-%s-%s" tag attr (url-hexify-string attrv))
web-completion-data-attrv-doc-dir))
;;; cached data
(defvar ac-html--tags-list nil "The list of tags.")
(defvar ac-html--global-attributes nil "The list of global attrs.")
(defvar ac-html--cached-attributes-alist nil)
;;; helper functions
(defun ac-html--load-list-from-file (filepath)
"Return a list separated by \\n from FILEPATH."
(if (file-exists-p filepath)
(with-current-buffer (find-file-noselect filepath)
(unwind-protect
(split-string
(save-restriction
(widen)
(buffer-substring-no-properties (point-min) (point-max)))
"\n" t)
(kill-buffer)))
nil))
(defun ac-html--read-file (file)
"If file exist, return string of contents, otherwise return nil."
(if (file-exists-p file)
(with-temp-buffer
(insert-file-contents file)
(buffer-string))
nil))
;;; functions
(defun ac-html-default-tags ()
(if ac-html--tags-list
ac-html--tags-list
(setq ac-html--tags-list
(ac-html--load-list-from-file web-completion-data-tag-list-file))))
(defun ac-html-default-attrs (tag)
(unless ac-html--global-attributes
(setq ac-html--global-attributes
(ac-html--load-list-from-file
web-completion-data-attr-global-list-file)))
(let (list attr-file)
(setq attr-file (web-completion-data-attr-list-file tag))
(if (file-exists-p attr-file)
(setq list (ac-html--load-list-from-file
attr-file)))
(append list ac-html--global-attributes)))
(defun ac-html-default-attrvs (tag attr)
(append
(ac-html--load-list-from-file
(web-completion-data-attrv-list-file tag attr))
(ac-html--load-list-from-file
(web-completion-data-attrv-global-list-file attr))))
(defun ac-html-default-tag-doc (tag)
(ac-html--read-file (web-completion-data-tag-doc-file tag)))
(defun ac-html-default-attr-doc (tag attr)
(or (ac-html--read-file (web-completion-data-attr-doc-file tag attr))
(ac-html--read-file (web-completion-data-attr-global-doc-file attr))))
(defun ac-html-default-attrv-doc (tag attr attrv)
(or (ac-html--read-file (web-completion-data-attrv-doc-file tag attr attrv))
(ac-html--read-file
(web-completion-data-attrv-global-doc-file attr attrv))))
(ac-html-define-data-provider 'ac-html-default-data-provider
:tag-func 'ac-html-default-tags
:attr-func 'ac-html-default-attrs
:attrv-func 'ac-html-default-attrvs
:tag-doc-func 'ac-html-default-tag-doc
:attr-doc-func 'ac-html-default-attr-doc
:attrv-doc-func 'ac-html-default-attrv-doc)
(provide 'ac-html-default-data-provider)
;;; ac-html-default-data-provider.el ends here

View File

@ -1,15 +0,0 @@
(define-package "ac-html" "20151005.731" "auto complete source for html tags and attributes"
'((auto-complete "1.4")
(s "1.9")
(f "0.17")
(dash "2.10"))
:commit "668154cba123c321d1b07c2dc8b26d14092253b8" :keywords
'("html" "auto-complete" "slim" "haml" "jade")
:authors
'(("Zhang Kai Yu" . "yeannylam@gmail.com"))
:maintainer
'("Zhang Kai Yu" . "yeannylam@gmail.com")
:url "https://github.com/cheunghy/ac-html")
;; Local Variables:
;; no-byte-compile: t
;; End:

View File

@ -1,17 +0,0 @@
(require 'ac-html-core)
(defun ac-html-testing-tags ()
'("tag1" "tag2" "tag3"))
(defun ac-html-testing-classes ()
'("class1" "class2"))
(defun ac-html-testing-ids ()
'("id1" "id2" "id3"))
(ac-html-define-data-provider 'ac-html-testing-data-provider
:tag-func 'ac-html-testing-tags
:class-func 'ac-html-testing-classes
:id-func 'ac-html-testing-ids)
(provide 'ac-html-testing-data-provider)

View File

@ -1,89 +0,0 @@
;;; ac-html.el --- auto complete source for html tags and attributes
;; Copyright (C) 2014 - 2015 Zhang Kai Yu
;; Author: Zhang Kai Yu <yeannylam@gmail.com>
;; Version: 0.4.alpha
;; Keywords: html, auto-complete, slim, haml, jade
;; Package-Requires: ((auto-complete "1.4") (s "1.9") (f "0.17") (dash "2.10"))
;; URL: https://github.com/cheunghy/ac-html
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(require 'ac-html-core)
(defun ac-html--inside-attrv ()
"Return t if cursor inside attrv aka string.
Has bug for quoted quote."
(save-match-data
(save-excursion
(re-search-backward "\\w+[\n\t ]*=[\n\t ]*[\"']\\([^\"']*\\)" nil t))
(equal (match-end 1) (point))))
(defun ac-html--inside-comment ()
"Return t if cursor inside comment.
Not implemented yet.")
;;; auto complete HTML for html-mode and web-mode
(defun ac-html-tag-prefix ()
(if (ac-html--inside-attrv)
nil
(save-match-data
(save-excursion
(re-search-backward "<\\([^\n\t >'\"]*\\)" nil t))
(match-beginning 1))))
(defun ac-html-attr-prefix ()
(if (ac-html--inside-attrv)
nil
(save-match-data
(save-excursion
(re-search-backward "<\\w[^>]*[[:space:]]+\\(.*\\)" nil t))
(match-beginning 1))))
(defun ac-html-value-prefix ()
(if (re-search-backward "\\w=[\"]\\([^\"]+[ ]\\|\\)\\(.*\\)" nil t)
(match-beginning 2)))
(defun ac-html-current-tag ()
"Return current html tag user is typing on.
There is a bug if attrv contains string like this <a"
(save-excursion
(save-match-data
(re-search-backward "<\\(\\w+\\)[[:space:]]+" nil t)
(match-string 1))))
(defun ac-html-current-attr ()
"Return current html tag's attribute user is typing on.
There is a bug if attrv contains string like this href="
(save-excursion
(re-search-backward "[^a-z-]\\([a-z-]+\\)[\n\t ]*=" nil t)
(match-string 1)))
(ac-html-define-ac-source "html"
:tag-prefix ac-html-tag-prefix
:attr-prefix ac-html-attr-prefix
:attrv-prefix ac-html-value-prefix
:current-tag-func ac-html-current-tag
:current-attr-func ac-html-current-attr)
(provide 'ac-html)
;;; ac-html.el ends here

View File

@ -1,52 +0,0 @@
;;; ac-jade.el --- auto complete source for html tag and attributes
;; Copyright (C) 2014 Zhang Kai Yu, Olexandr Sydorchuck
;; Author: Zhang Kai Yu <yeannylam@gmail.com>
;; Keywords: html, auto-complete, jade, node
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; Configuration:
;;
;;; Code:
(require 'ac-html-core)
(defun ac-jade-current-tag ()
"Return current jade tag user is typing on."
(save-excursion (re-search-backward "^[\t ]*\\(\\w+\\)" nil t))
(match-string 1))
(defun ac-jade-current-attr ()
"Return current html tag's attribute user is typing on."
(save-excursion (re-search-backward "[^a-z-]\\([a-z-]+\\) *=" nil t))
(match-string 1))
(defun ac-jade-attrv-prefix ()
(if (re-search-backward "\\w *= *[\"]\\([^\"]+[ ]\\|\\)\\(.*\\)" nil t)
(match-beginning 2)))
(ac-html-define-ac-source "jade"
:tag-prefix "^[\t ]*\\(.*\\)"
:attr-prefix "\\(?:,\\|(\\)[ ]*\\(.*\\)"
:attrv-prefix ac-jade-attrv-prefix
:current-tag-func ac-jade-current-tag
:current-attr-func ac-jade-current-attr)
(provide 'ac-jade)
;;; ac-jade.el ends here

View File

@ -1,154 +0,0 @@
;;; ac-slim.el --- auto complete source for html tag and attributes
;; Copyright (C) 2015 Zhang Kai Yu
;; Author: Zhang Kai Yu <yeannylam@gmail.com>
;; Keywords: html, auto-complete, slim, ruby
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; Configuration:
;;
;;; Code:
(require 'ac-html-core)
(require 's)
(defun ac-slim-inside-ruby-code ()
"Return t if inside ruby code."
(let ((line (buffer-substring-no-properties (line-beginning-position)
(line-end-position))))
(numberp (string-match-p "^[\t ]*[-=]" line))))
(defun ac-slim--line-leading-spaces ()
"Return leading space of current line."
(let ((saved-point (point)) (number-of-spaces 0) (cur-point nil))
(goto-char (line-beginning-position))
(setq cur-point (point))
(while (-contains-p '(? ?\t) (char-after cur-point))
(setq number-of-spaces (1+ number-of-spaces))
(setq cur-point (1+ cur-point))
(goto-char cur-point))
(goto-char saved-point)
number-of-spaces))
(defun ac-slim--line-is-block-indicator ()
"Return t if line indicate a non slim block."
(let ((content-of-line (buffer-substring-no-properties
(line-beginning-position) (line-end-position))))
(numberp (string-match-p
"[ \t]*\\(ruby\\|javascript\\|coffee\\):[ \t]*"
content-of-line))))
(defun ac-slim--line-is-empty ()
"Return t if line is empty."
(s-matches-p "^[ \t]*$" (buffer-substring-no-properties
(line-beginning-position)
(line-end-position))))
(defun ac-slim-inside-non-slim-block ()
"Return t if inside ruby block, coffee block."
(catch 'blk
(save-excursion
(let ((min-number-of-leading-spaces (ac-slim--line-leading-spaces)))
(if (ac-slim--line-is-block-indicator)
(throw 'blk t))
(while (not (or (= min-number-of-leading-spaces 0)
(= 1 (line-number-at-pos))))
(forward-line -1)
(if (ac-slim--line-is-empty)
nil
(if (< (ac-slim--line-leading-spaces) min-number-of-leading-spaces)
(progn
(setq min-number-of-leading-spaces (ac-slim--line-leading-spaces))
(if (ac-slim--line-is-block-indicator)
(throw 'blk t))))))))))
(defun ac-slim-tag-prefix ()
(and (not (ac-slim-inside-ruby-code))
(not (ac-slim-inside-non-slim-block))
(save-match-data
(save-excursion
(re-search-backward "\\(^[\t ]*\\|:[\t ]*\\)\\([a-zA-Z]*\\)" nil t)
(match-beginning 2)))))
(defun ac-slim-attr-prefix ()
(and (not (ac-slim-inside-ruby-code))
(not (ac-slim-inside-non-slim-block))
(not (ac-slim-attrv-prefix))
(save-match-data
(save-excursion
(re-search-backward " \\(.*\\)" nil t)
(match-beginning 1)))))
(defun ac-slim-attrv-prefix ()
(and (not (ac-slim-inside-ruby-code))
(not (ac-slim-inside-non-slim-block))
(let (mb2 me2)
(save-excursion
(save-match-data
(if (re-search-backward
"\\w *= *[\"']\\([^\"']+[ ]\\|\\)\\([^\"']*\\)"
(line-beginning-position) t)
(progn
(setq mb2 (match-beginning 2))
(setq me2 (match-end 2))))))
(if (and mb2 (>= me2 (point)))
mb2))))
(defun ac-slim-class-prefix ()
(and (not (ac-slim-inside-ruby-code))
(not (ac-slim-inside-non-slim-block))
(save-match-data
(save-excursion
(re-search-backward "\\(^[\t ]*\\|:[\t ]*\\)\\([a-zA-Z0-9#.]*\\.\\)\\([a-zA-Z0-9]\\)" nil t)
(match-beginning 3)))))
(defun ac-slim-id-prefix ()
(and (not (ac-slim-inside-ruby-code))
(not (ac-slim-inside-non-slim-block))
(save-match-data
(save-excursion
(re-search-backward "\\(^[\t ]*\\|:[\t ]*\\)\\([a-zA-Z0-9.]*#\\)\\([a-zA-Z0-9]\\)" nil t)
(match-beginning 3)))))
(defun ac-slim-current-tag ()
"Return current slim tag user is typing on."
(let* ((line (buffer-substring-no-properties (line-beginning-position)
(line-end-position)))
(match-result (s-match "\\(^[\t ]*\\|:[\t ]*\\)\\(\\w+\\)" line)))
(if match-result
(nth 2 match-result)
"div")))
(defun ac-slim-current-attr ()
"Return current html tag's attribute user is typing on."
(save-excursion (re-search-backward "[^a-z-]\\([a-z-]+\\) *=" nil t))
(match-string 1))
(ac-html-define-ac-source "slim"
:tag-prefix ac-slim-tag-prefix
:attr-prefix ac-slim-attr-prefix
:attrv-prefix ac-slim-attrv-prefix
:class-prefix ac-slim-class-prefix
:id-prefix ac-slim-id-prefix
:current-tag-func ac-slim-current-tag
:current-attr-func ac-slim-current-attr)
(provide 'ac-slim)
;;; ac-slim.el ends here

View File

@ -1 +0,0 @@
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes

View File

@ -1,15 +0,0 @@
download
href
media
ping
rel
target
datafld
datasrc
hreflang
methods
name
rev
shape
type
urn

View File

@ -1,15 +0,0 @@
align
alt
archive
code
codebase
datafld
datasrc
height
hspace
mayscript
name
object
src
vspace
width

View File

@ -1,10 +0,0 @@
alt
coords
download
href
hreflang
media
rel
shape
target
type

View File

@ -1,11 +0,0 @@
autoplay
autobuffer
buffered
controls
loop
mosCurrentSampleOffset
muted
played
preload
src
volume

View File

@ -1,4 +0,0 @@
balance
loop
src
volume

View File

@ -1,18 +0,0 @@
onafterprint
onbeforeprint
onbeforeunload
onblur
onerror
onfocus
onhashchange
onlanguagechange
onload
onmessage
onoffline
ononline
onpopstate
onredo
onresize
onstorage
onundo
onunload

View File

@ -1,12 +0,0 @@
autofocus
autocomplete
disabled
form
formaction
formenctype
formmethod
formnovalidate
formtarget
name
type
value

View File

@ -1,3 +0,0 @@
height
moz-opaque
width

View File

@ -1,2 +0,0 @@
cite
datetime

View File

@ -1,4 +0,0 @@
height
src
type
width

View File

@ -1,3 +0,0 @@
disabled
form
name

View File

@ -1,9 +0,0 @@
accept-charset
action
autocapitalize
autocomplete
enctype
method
name
novalidate
target

View File

@ -1,7 +0,0 @@
src
name
noresize
scrolling
marginheight
marginwidth
frameborder

View File

@ -1,20 +0,0 @@
accesskey
class
contenteditable
contextmenu
data-
dir
draggable
dropzone
hidden
id
itemid
itemprop
itemref
itemscope
itemtype
lang
spellcheck
style
tabindex
title

View File

@ -1,8 +0,0 @@
allowfullscreen
height
name
sandbox
seamless
src
srcdoc
width

View File

@ -1,9 +0,0 @@
alt
crossorigin
height
ismap
src
sizes
srcset
width
usemap

View File

@ -1,38 +0,0 @@
type
accept
autocapitalize
mozactionhint
autocomplete
autocorrect
autofocus
autosave
checked
disabled
form
formaction
formenctype
formmethod
formnovalidate
formtarget
height
incremental
inputmode
list
max
maxlength
min
minlength
multiple
name
pattern
placeholder
readonly
required
selectionDirection
size
spellcheck
src
step
value
width
x-moz-errormessage

View File

@ -1,2 +0,0 @@
cite
datetime

View File

@ -1,6 +0,0 @@
autofocus
challenge
disabled
form
keytype
name

View File

@ -1,3 +0,0 @@
accesskey
for
form

View File

@ -1,11 +0,0 @@
crossorigin
use-credentials
disabled
href
hreflang
media
methods
rel
sizes
target
type

View File

@ -1,16 +0,0 @@
behavior
bgcolor
direction
height
hspace
loop
scrollamount
scrolldelay
truespeed
vspace
width
onbounce
onfinish
onstart
start
stop

View File

@ -1,8 +0,0 @@
checked
command
default
disabled
icon
label
radiogroup
type

View File

@ -1,5 +0,0 @@
name
charset
itemprop
http-equiv
content

View File

@ -1,7 +0,0 @@
value
min
max
low
high
optimum
form

View File

@ -1,8 +0,0 @@
data
form
height
name
type
typemustmatch
usemap
width

View File

@ -1,4 +0,0 @@
compact
reversed
start
type

View File

@ -1,4 +0,0 @@
disabled
label
selected
value

View File

@ -1,5 +0,0 @@
async
src
type
defer
crossorigin

View File

@ -1,7 +0,0 @@
autofocus
disabled
form
multiple
name
required
size

View File

@ -1,5 +0,0 @@
sizes
src
srcset
type
media

View File

@ -1,5 +0,0 @@
type
size
width
height
align

View File

@ -1,5 +0,0 @@
type
media
scoped
title
disabled

View File

@ -1,3 +0,0 @@
colspan
headers
rowspan

View File

@ -1,18 +0,0 @@
autocapitalize
autocomplete
autofocus
cols
disabled
form
maxlength
minlength
name
placeholder
readonly
required
rows
selectionDirection
selectionEnd
selectionStart
spellcheck
wrap

View File

@ -1,4 +0,0 @@
colspan
headers
rowspan
scope

View File

@ -1,5 +0,0 @@
default
kind
label
src
srclang

View File

@ -1,12 +0,0 @@
autoplay
buffered
controls
crossorigin
height
loop
muted
played
preload
poster
src
width

View File

@ -1,7 +0,0 @@
charset [Obsolete since HTML5]
This attribute defines the character encoding of the linked resource. The value is a space- and/or comma-delimited list of character sets as defined in RFC 2045. The default value is ISO-8859-1.
Usage note:
This attribute is obsolete in HTML5 and should not be used by authors. To achieve its effect, use the HTTP Content-Type header on the linked resource.

View File

@ -1,3 +0,0 @@
coords [HTML4 only] [Obsolete since HTML5]
For use with object shapes, this attribute uses a comma-separated list of numbers to define the coordinates of the object on the page.

View File

@ -1,10 +0,0 @@
download [HTML5]
This attribute, if present, indicates that the author intends the hyperlink to be used for downloading a resource so that when the user clicks on the link they will be prompted to save it as a local file. If the attribute has a value, the value will be used as the pre-filled file name in the Save prompt that opens when the user clicks on the link (the user can change the name before actually saving the file of course). There are no restrictions on allowed values (though / and \ will be converted to underscores, preventing specific path hints), but you should consider that most file systems have limitations with regard to what punctuation is supported in file names, and browsers are likely to adjust file names accordingly.
Note:
Can be used with blob: URLs and data: URLs, to make it easy for users to download content that is generated programmatically using JavaScript (e.g. a picture created using an online drawing Web app).
If the HTTP header Content-Disposition: is present and gives a different filename than this attribute, the HTTP header has priority over this attribute.
If this attribute is present and Content-Disposition: is set to inline, Firefox gives priority to Content-Disposition, like for the filename case, while Chrome gives priority to the download attribute.
In Firefox 20 this attribute is only honored for links to resources with the same-origin.

View File

@ -1,5 +0,0 @@
This was the single required attribute for anchors defining a hypertext source link, but is no longer required in HTML5. Omitting this attribute creates a placeholder link. The href attribute indicates the link target, either a URL or a URL fragment. A URL fragment is a name preceded by a hash mark (#), which specifies an internal target location (an ID) within the current document. URLs are not restricted to Web (HTTP)-based documents. URLs might use any protocol supported by the browser. For example, file, ftp, and mailto work in most user agents.
Note:
You can use the special fragment "top" to create a link back to the top of the page; for example <a href="#top">Return to top</a>. This behavior is specified by HTML5.

View File

@ -1,3 +0,0 @@
hreflang
This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by BCP47 for HTML5 and by RFC1766 for HTML4. Use this attribute only if the href attribute is present.

View File

@ -1,8 +0,0 @@
media [html5]
This attribute specifies the media which the linked resource applies to. Its value must be a media query. This attribute is mainly useful when linking to external stylesheets by allowing the user agent to pick the best adapted one for the device it runs on.
Usage note:
In HTML 4, only simple white-space-separated list of media description literals, i.e. media types and groups, where defined and allowed as values for this attribute, like print, screen, aural, braille, ... HTML 5 extended this to any kind of media queries, which are a superset of the allowed values of HTML 4.
Browsers not supporting the CSS3 Media Queries won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.

View File

@ -1,3 +0,0 @@
methods [!]
The value of this attribute provides information about the functions that might be performed on an object. The values generally are given by the HTTP protocol when it is used, but it might (for similar reasons as for the title attribute) be useful to include advisory information in advance in the link. For example, the browser might choose a different rendering of a link as a function of the methods specified; something that is searchable might get a different icon, or an outside link might render with an indication of leaving the current site. This attribute is not well understood nor supported, even by the defining browser, Internet Explorer 4. Methods Property (MSDN)

View File

@ -1,7 +0,0 @@
name [HTML4 only] [Obsolete since HTML5]
This attribute is required in an anchor defining a target location within a page. A value for name is similar to a value for the id core attribute and should be an alphanumeric identifier unique to the document. Under the HTML 4.01 specification, id and name both can be used with the <a> element as long as they have identical values.
Usage note:
This attribute is obsolete in HTML5, use global attribute id instead.

View File

@ -1,3 +0,0 @@
ping [html5]
The 'ping' attribute, if present, sends the URLs of the resources a notification/ping if the user follows the hyperlink.

View File

@ -1,3 +0,0 @@
rel
For anchors containing the href attribute, this attribute specifies the relationship of the target object to the link object. The value is a comma-separated list of link types values. The values and their semantics will be registered by some authority that might have meaning to the document author. The default relationship, if no other is given, is void. Use this attribute only if the href attribute is present.

View File

@ -1,3 +0,0 @@
rev [HTML4 only] [Obsolete since HTML5]
This attribute specifies a reverse link, the inverse relationship of the rel attribute. It is useful for indicating where an object came from, such as the author of a document.

Some files were not shown because too many files have changed in this diff Show More