First commit.
This commit is contained in:
commit
d40eb4bc36
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
ac-comphist.dat
|
||||
.mc-lists.el
|
||||
auto-save-list/*
|
18
elpa/0blayout-readme.txt
Normal file
18
elpa/0blayout-readme.txt
Normal file
@ -0,0 +1,18 @@
|
||||
This global minor mode provides a simple way to switch between layouts and
|
||||
the buffers you left open before you switched (unless you closed it).
|
||||
|
||||
It doesn't require any setup at all more than:
|
||||
(0blayout-mode)
|
||||
|
||||
When you start Emacs with 0blayout loaded, you will have a default layout
|
||||
named "default", and then you can create new layouts (<prefix> C-c), switch
|
||||
layouts (<prefix> C-b), and kill the current layout (<prefix> C-k).
|
||||
The default <prefix> is (C-c C-l), but you can change it using:
|
||||
(0blayout-add-keybindings-with-prefix "<your prefix>")
|
||||
|
||||
You can also customize-variable to change the name of the default session.
|
||||
|
||||
The project is hosted at https://github.com/etu/0blayout
|
||||
There you can leave bug-reports and suggestions.
|
||||
|
||||
Another comparable mode is eyebrowse which have been developed for longer.
|
52
elpa/ac-emmet-20131015.1558/ac-emmet-autoloads.el
Normal file
52
elpa/ac-emmet-20131015.1558/ac-emmet-autoloads.el
Normal file
@ -0,0 +1,52 @@
|
||||
;;; ac-emmet-autoloads.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "ac-emmet" "ac-emmet.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ac-emmet.el
|
||||
|
||||
(defface ac-emmet-candidate-face '((t (:inherit ac-candidate-face))) "\
|
||||
Face for emmet candidates." :group (quote auto-complete))
|
||||
|
||||
(defface ac-emmet-selection-face '((t (:inherit ac-selection-face))) "\
|
||||
Face for the emmet selected candidate." :group (quote auto-complete))
|
||||
|
||||
(defconst ac-emmet-source-defaults '((candidate-face . ac-emmet-candidate-face) (selection-face . ac-emmet-selection-face) (symbol . "a") (requires . 1) (action lambda nil (call-interactively 'emmet-expand-line))) "\
|
||||
Defaults common to the various completion sources.")
|
||||
|
||||
(defvar ac-source-emmet-html-snippets (append '((candidates . ac-emmet-html-snippets-keys) (document lambda (s) (ac-emmet-document s ac-emmet-html-snippets-hash))) ac-emmet-source-defaults) "\
|
||||
Auto-complete source for emmet-mode's html snippet completion.")
|
||||
|
||||
(defvar ac-source-emmet-html-aliases (append '((candidates . ac-emmet-html-aliases-keys) (document lambda (s) (ac-emmet-document s ac-emmet-html-aliases-hash))) ac-emmet-source-defaults) "\
|
||||
Auto-complete source for emmet-mode's html alias completion.")
|
||||
|
||||
(defvar ac-source-emmet-css-snippets (append '((candidates . ac-emmet-css-snippets-keys) (document lambda (s) (ac-emmet-document s ac-emmet-css-snippets-hash))) ac-emmet-source-defaults) "\
|
||||
Auto-complete source for emmet-mode's css snippet completion.")
|
||||
|
||||
(autoload 'ac-emmet-html-setup "ac-emmet" "\
|
||||
Add the emmet-mode's html completion source to the front of `ac-sources'.
|
||||
This affects only the current buffer.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'ac-emmet-css-setup "ac-emmet" "\
|
||||
Add the emmet-mode's css completion source to the front of `ac-sources'.
|
||||
This affects only the current buffer.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-emmet" '("ac-emmet-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; ac-emmet-autoloads.el ends here
|
2
elpa/ac-emmet-20131015.1558/ac-emmet-pkg.el
Normal file
2
elpa/ac-emmet-20131015.1558/ac-emmet-pkg.el
Normal file
@ -0,0 +1,2 @@
|
||||
;;; -*- no-byte-compile: t -*-
|
||||
(define-package "ac-emmet" "20131015.1558" "auto-complete sources for emmet-mode's snippets" '((emmet-mode "1.0.2") (auto-complete "1.4")) :commit "88f24876ee3b759978d4614a758280b5d512d543" :keywords '("completion" "convenience" "emmet") :authors '(("Yasuyuki Oka" . "yasuyk@gmail.com")) :maintainer '("Yasuyuki Oka" . "yasuyk@gmail.com") :url "https://github.com/yasuyk/ac-emmet")
|
131
elpa/ac-emmet-20131015.1558/ac-emmet.el
Normal file
131
elpa/ac-emmet-20131015.1558/ac-emmet.el
Normal file
@ -0,0 +1,131 @@
|
||||
;;; ac-emmet.el --- auto-complete sources for emmet-mode's snippets
|
||||
|
||||
;; Copyright (C) 2013 Yasuyuki Oka <yasuyk@gmail.com>
|
||||
|
||||
;; Author: Yasuyuki Oka <yasuyk@gmail.com>
|
||||
;; Version: DEV
|
||||
;; Package-Version: 20131015.1558
|
||||
;; Package-Commit: 88f24876ee3b759978d4614a758280b5d512d543
|
||||
;; URL: https://github.com/yasuyk/ac-emmet
|
||||
;; Package-Requires: ((emmet-mode "1.0.2") (auto-complete "1.4"))
|
||||
;; Keywords: completion, convenience, emmet
|
||||
|
||||
;; 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:
|
||||
|
||||
;; Provides auto-complete sources for emmet-mode.
|
||||
|
||||
;;; Usage:
|
||||
|
||||
;; (require 'ac-emmet) ;; Not necessary if using ELPA package
|
||||
;; (add-hook 'sgml-mode-hook 'ac-emmet-html-setup)
|
||||
;; (add-hook 'css-mode-hook 'ac-emmet-css-setup)
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'auto-complete)
|
||||
(require 'emmet-mode)
|
||||
|
||||
;;;###autoload
|
||||
(defface ac-emmet-candidate-face
|
||||
'((t (:inherit ac-candidate-face)))
|
||||
"Face for emmet candidates."
|
||||
:group 'auto-complete)
|
||||
|
||||
;;;###autoload
|
||||
(defface ac-emmet-selection-face
|
||||
'((t (:inherit ac-selection-face)))
|
||||
"Face for the emmet selected candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defvar ac-emmet-html-snippets-hash
|
||||
(gethash "snippets" (gethash "html" emmet-snippets)))
|
||||
|
||||
(defvar ac-emmet-html-snippets-keys
|
||||
(loop for k being hash-key in ac-emmet-html-snippets-hash collect k))
|
||||
|
||||
(defvar ac-emmet-html-aliases-hash
|
||||
(gethash "aliases" (gethash "html" emmet-snippets)))
|
||||
|
||||
(defvar ac-emmet-html-aliases-keys
|
||||
(loop for k being hash-key in ac-emmet-html-aliases-hash collect k))
|
||||
|
||||
(defvar ac-emmet-css-snippets-hash
|
||||
(gethash "snippets" (gethash "css" emmet-snippets)))
|
||||
|
||||
(defvar ac-emmet-css-snippets-keys
|
||||
(loop for k being hash-key in ac-emmet-css-snippets-hash collect k))
|
||||
|
||||
(defun ac-emmet-document (candidate hash)
|
||||
(let ((snippet (gethash candidate hash)))
|
||||
(if (functionp snippet)
|
||||
(funcall snippet "")
|
||||
snippet)))
|
||||
|
||||
;;;###autoload
|
||||
(defconst ac-emmet-source-defaults
|
||||
'((candidate-face . ac-emmet-candidate-face)
|
||||
(selection-face . ac-emmet-selection-face)
|
||||
(symbol . "a")
|
||||
(requires . 1)
|
||||
(action . (lambda () (call-interactively 'emmet-expand-line))))
|
||||
"Defaults common to the various completion sources.")
|
||||
|
||||
;;;###autoload
|
||||
(defvar ac-source-emmet-html-snippets
|
||||
(append
|
||||
'((candidates . ac-emmet-html-snippets-keys)
|
||||
(document . (lambda (s) (ac-emmet-document s ac-emmet-html-snippets-hash))))
|
||||
ac-emmet-source-defaults)
|
||||
"Auto-complete source for emmet-mode's html snippet completion.")
|
||||
|
||||
;;;###autoload
|
||||
(defvar ac-source-emmet-html-aliases
|
||||
(append
|
||||
'((candidates . ac-emmet-html-aliases-keys)
|
||||
(document . (lambda (s) (ac-emmet-document s ac-emmet-html-aliases-hash))))
|
||||
ac-emmet-source-defaults)
|
||||
"Auto-complete source for emmet-mode's html alias completion.")
|
||||
|
||||
;;;###autoload
|
||||
(defvar ac-source-emmet-css-snippets
|
||||
(append
|
||||
'((candidates . ac-emmet-css-snippets-keys)
|
||||
(document . (lambda (s) (ac-emmet-document s ac-emmet-css-snippets-hash))))
|
||||
ac-emmet-source-defaults)
|
||||
"Auto-complete source for emmet-mode's css snippet completion.")
|
||||
|
||||
;;;###autoload
|
||||
(defun ac-emmet-html-setup ()
|
||||
"Add the emmet-mode's html completion source to the front of `ac-sources'.
|
||||
This affects only the current buffer."
|
||||
(interactive)
|
||||
(add-to-list 'ac-sources 'ac-source-emmet-html-snippets)
|
||||
(add-to-list 'ac-sources 'ac-source-emmet-html-aliases))
|
||||
|
||||
;;;###autoload
|
||||
(defun ac-emmet-css-setup ()
|
||||
"Add the emmet-mode's css completion source to the front of `ac-sources'.
|
||||
This affects only the current buffer."
|
||||
(interactive)
|
||||
(add-to-list 'ac-sources 'ac-source-emmet-css-snippets))
|
||||
|
||||
(provide 'ac-emmet)
|
||||
|
||||
;; Local Variables:
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
|
||||
;;; ac-emmet.el ends here
|
BIN
elpa/ac-emmet-20131015.1558/ac-emmet.elc
Normal file
BIN
elpa/ac-emmet-20131015.1558/ac-emmet.elc
Normal file
Binary file not shown.
1
elpa/ac-emmet-readme.txt
Normal file
1
elpa/ac-emmet-readme.txt
Normal file
@ -0,0 +1 @@
|
||||
Provides auto-complete sources for emmet-mode.
|
103
elpa/ac-html-20151005.731/ac-haml.el
Normal file
103
elpa/ac-html-20151005.731/ac-haml.el
Normal file
@ -0,0 +1,103 @@
|
||||
;;; 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
|
BIN
elpa/ac-html-20151005.731/ac-haml.elc
Normal file
BIN
elpa/ac-html-20151005.731/ac-haml.elc
Normal file
Binary file not shown.
90
elpa/ac-html-20151005.731/ac-html-autoloads.el
Normal file
90
elpa/ac-html-20151005.731/ac-html-autoloads.el
Normal file
@ -0,0 +1,90 @@
|
||||
;;; 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
|
263
elpa/ac-html-20151005.731/ac-html-core.el
Normal file
263
elpa/ac-html-20151005.731/ac-html-core.el
Normal file
@ -0,0 +1,263 @@
|
||||
;;; 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
|
BIN
elpa/ac-html-20151005.731/ac-html-core.elc
Normal file
BIN
elpa/ac-html-20151005.731/ac-html-core.elc
Normal file
Binary file not shown.
139
elpa/ac-html-20151005.731/ac-html-default-data-provider.el
Normal file
139
elpa/ac-html-20151005.731/ac-html-default-data-provider.el
Normal file
@ -0,0 +1,139 @@
|
||||
(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
|
BIN
elpa/ac-html-20151005.731/ac-html-default-data-provider.elc
Normal file
BIN
elpa/ac-html-20151005.731/ac-html-default-data-provider.elc
Normal file
Binary file not shown.
15
elpa/ac-html-20151005.731/ac-html-pkg.el
Normal file
15
elpa/ac-html-20151005.731/ac-html-pkg.el
Normal file
@ -0,0 +1,15 @@
|
||||
(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:
|
17
elpa/ac-html-20151005.731/ac-html-testing-data-provider.el
Normal file
17
elpa/ac-html-20151005.731/ac-html-testing-data-provider.el
Normal file
@ -0,0 +1,17 @@
|
||||
(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)
|
BIN
elpa/ac-html-20151005.731/ac-html-testing-data-provider.elc
Normal file
BIN
elpa/ac-html-20151005.731/ac-html-testing-data-provider.elc
Normal file
Binary file not shown.
89
elpa/ac-html-20151005.731/ac-html.el
Normal file
89
elpa/ac-html-20151005.731/ac-html.el
Normal file
@ -0,0 +1,89 @@
|
||||
;;; 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
|
BIN
elpa/ac-html-20151005.731/ac-html.elc
Normal file
BIN
elpa/ac-html-20151005.731/ac-html.elc
Normal file
Binary file not shown.
52
elpa/ac-html-20151005.731/ac-jade.el
Normal file
52
elpa/ac-html-20151005.731/ac-jade.el
Normal file
@ -0,0 +1,52 @@
|
||||
;;; 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
|
BIN
elpa/ac-html-20151005.731/ac-jade.elc
Normal file
BIN
elpa/ac-html-20151005.731/ac-jade.elc
Normal file
Binary file not shown.
154
elpa/ac-html-20151005.731/ac-slim.el
Normal file
154
elpa/ac-html-20151005.731/ac-slim.el
Normal file
@ -0,0 +1,154 @@
|
||||
;;; 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
|
BIN
elpa/ac-html-20151005.731/ac-slim.elc
Normal file
BIN
elpa/ac-html-20151005.731/ac-slim.elc
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes
|
@ -0,0 +1,15 @@
|
||||
download
|
||||
href
|
||||
media
|
||||
ping
|
||||
rel
|
||||
target
|
||||
datafld
|
||||
datasrc
|
||||
hreflang
|
||||
methods
|
||||
name
|
||||
rev
|
||||
shape
|
||||
type
|
||||
urn
|
@ -0,0 +1,15 @@
|
||||
align
|
||||
alt
|
||||
archive
|
||||
code
|
||||
codebase
|
||||
datafld
|
||||
datasrc
|
||||
height
|
||||
hspace
|
||||
mayscript
|
||||
name
|
||||
object
|
||||
src
|
||||
vspace
|
||||
width
|
@ -0,0 +1,10 @@
|
||||
alt
|
||||
coords
|
||||
download
|
||||
href
|
||||
hreflang
|
||||
media
|
||||
rel
|
||||
shape
|
||||
target
|
||||
type
|
@ -0,0 +1,11 @@
|
||||
autoplay
|
||||
autobuffer
|
||||
buffered
|
||||
controls
|
||||
loop
|
||||
mosCurrentSampleOffset
|
||||
muted
|
||||
played
|
||||
preload
|
||||
src
|
||||
volume
|
@ -0,0 +1,2 @@
|
||||
href
|
||||
target
|
@ -0,0 +1,3 @@
|
||||
color
|
||||
face
|
||||
size
|
@ -0,0 +1 @@
|
||||
dir
|
@ -0,0 +1,4 @@
|
||||
balance
|
||||
loop
|
||||
src
|
||||
volume
|
@ -0,0 +1 @@
|
||||
cite
|
@ -0,0 +1,18 @@
|
||||
onafterprint
|
||||
onbeforeprint
|
||||
onbeforeunload
|
||||
onblur
|
||||
onerror
|
||||
onfocus
|
||||
onhashchange
|
||||
onlanguagechange
|
||||
onload
|
||||
onmessage
|
||||
onoffline
|
||||
ononline
|
||||
onpopstate
|
||||
onredo
|
||||
onresize
|
||||
onstorage
|
||||
onundo
|
||||
onunload
|
@ -0,0 +1,12 @@
|
||||
autofocus
|
||||
autocomplete
|
||||
disabled
|
||||
form
|
||||
formaction
|
||||
formenctype
|
||||
formmethod
|
||||
formnovalidate
|
||||
formtarget
|
||||
name
|
||||
type
|
||||
value
|
@ -0,0 +1,3 @@
|
||||
height
|
||||
moz-opaque
|
||||
width
|
@ -0,0 +1,2 @@
|
||||
bgcolor
|
||||
span
|
@ -0,0 +1,2 @@
|
||||
bgcolor
|
||||
span
|
@ -0,0 +1 @@
|
||||
value
|
@ -0,0 +1 @@
|
||||
nowrap
|
@ -0,0 +1,2 @@
|
||||
cite
|
||||
datetime
|
@ -0,0 +1 @@
|
||||
open
|
@ -0,0 +1 @@
|
||||
open
|
@ -0,0 +1 @@
|
||||
compact
|
@ -0,0 +1,4 @@
|
||||
height
|
||||
src
|
||||
type
|
||||
width
|
@ -0,0 +1,3 @@
|
||||
disabled
|
||||
form
|
||||
name
|
@ -0,0 +1,9 @@
|
||||
accept-charset
|
||||
action
|
||||
autocapitalize
|
||||
autocomplete
|
||||
enctype
|
||||
method
|
||||
name
|
||||
novalidate
|
||||
target
|
@ -0,0 +1,7 @@
|
||||
src
|
||||
name
|
||||
noresize
|
||||
scrolling
|
||||
marginheight
|
||||
marginwidth
|
||||
frameborder
|
@ -0,0 +1,2 @@
|
||||
cols
|
||||
rows
|
@ -0,0 +1,20 @@
|
||||
accesskey
|
||||
class
|
||||
contenteditable
|
||||
contextmenu
|
||||
data-
|
||||
dir
|
||||
draggable
|
||||
dropzone
|
||||
hidden
|
||||
id
|
||||
itemid
|
||||
itemprop
|
||||
itemref
|
||||
itemscope
|
||||
itemtype
|
||||
lang
|
||||
spellcheck
|
||||
style
|
||||
tabindex
|
||||
title
|
@ -0,0 +1 @@
|
||||
color
|
@ -0,0 +1 @@
|
||||
manifest
|
@ -0,0 +1,8 @@
|
||||
allowfullscreen
|
||||
height
|
||||
name
|
||||
sandbox
|
||||
seamless
|
||||
src
|
||||
srcdoc
|
||||
width
|
@ -0,0 +1,9 @@
|
||||
alt
|
||||
crossorigin
|
||||
height
|
||||
ismap
|
||||
src
|
||||
sizes
|
||||
srcset
|
||||
width
|
||||
usemap
|
@ -0,0 +1,38 @@
|
||||
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
|
@ -0,0 +1,2 @@
|
||||
cite
|
||||
datetime
|
@ -0,0 +1,2 @@
|
||||
prompt
|
||||
action
|
@ -0,0 +1,6 @@
|
||||
autofocus
|
||||
challenge
|
||||
disabled
|
||||
form
|
||||
keytype
|
||||
name
|
@ -0,0 +1,3 @@
|
||||
accesskey
|
||||
for
|
||||
form
|
@ -0,0 +1 @@
|
||||
value
|
@ -0,0 +1,11 @@
|
||||
crossorigin
|
||||
use-credentials
|
||||
disabled
|
||||
href
|
||||
hreflang
|
||||
media
|
||||
methods
|
||||
rel
|
||||
sizes
|
||||
target
|
||||
type
|
@ -0,0 +1 @@
|
||||
name
|
@ -0,0 +1,16 @@
|
||||
behavior
|
||||
bgcolor
|
||||
direction
|
||||
height
|
||||
hspace
|
||||
loop
|
||||
scrollamount
|
||||
scrolldelay
|
||||
truespeed
|
||||
vspace
|
||||
width
|
||||
onbounce
|
||||
onfinish
|
||||
onstart
|
||||
start
|
||||
stop
|
@ -0,0 +1,2 @@
|
||||
label
|
||||
type
|
@ -0,0 +1,8 @@
|
||||
checked
|
||||
command
|
||||
default
|
||||
disabled
|
||||
icon
|
||||
label
|
||||
radiogroup
|
||||
type
|
@ -0,0 +1,5 @@
|
||||
name
|
||||
charset
|
||||
itemprop
|
||||
http-equiv
|
||||
content
|
@ -0,0 +1,7 @@
|
||||
value
|
||||
min
|
||||
max
|
||||
low
|
||||
high
|
||||
optimum
|
||||
form
|
@ -0,0 +1,8 @@
|
||||
data
|
||||
form
|
||||
height
|
||||
name
|
||||
type
|
||||
typemustmatch
|
||||
usemap
|
||||
width
|
@ -0,0 +1,4 @@
|
||||
compact
|
||||
reversed
|
||||
start
|
||||
type
|
@ -0,0 +1,2 @@
|
||||
disabled
|
||||
label
|
@ -0,0 +1,4 @@
|
||||
disabled
|
||||
label
|
||||
selected
|
||||
value
|
@ -0,0 +1,3 @@
|
||||
for
|
||||
form
|
||||
name
|
@ -0,0 +1 @@
|
||||
name
|
@ -0,0 +1,2 @@
|
||||
max
|
||||
value
|
@ -0,0 +1 @@
|
||||
cite
|
@ -0,0 +1,5 @@
|
||||
async
|
||||
src
|
||||
type
|
||||
defer
|
||||
crossorigin
|
@ -0,0 +1,7 @@
|
||||
autofocus
|
||||
disabled
|
||||
form
|
||||
multiple
|
||||
name
|
||||
required
|
||||
size
|
@ -0,0 +1,5 @@
|
||||
sizes
|
||||
src
|
||||
srcset
|
||||
type
|
||||
media
|
@ -0,0 +1,5 @@
|
||||
type
|
||||
size
|
||||
width
|
||||
height
|
||||
align
|
@ -0,0 +1,5 @@
|
||||
type
|
||||
media
|
||||
scoped
|
||||
title
|
||||
disabled
|
@ -0,0 +1,3 @@
|
||||
colspan
|
||||
headers
|
||||
rowspan
|
@ -0,0 +1,18 @@
|
||||
autocapitalize
|
||||
autocomplete
|
||||
autofocus
|
||||
cols
|
||||
disabled
|
||||
form
|
||||
maxlength
|
||||
minlength
|
||||
name
|
||||
placeholder
|
||||
readonly
|
||||
required
|
||||
rows
|
||||
selectionDirection
|
||||
selectionEnd
|
||||
selectionStart
|
||||
spellcheck
|
||||
wrap
|
@ -0,0 +1,4 @@
|
||||
colspan
|
||||
headers
|
||||
rowspan
|
||||
scope
|
@ -0,0 +1 @@
|
||||
datetime
|
@ -0,0 +1,5 @@
|
||||
default
|
||||
kind
|
||||
label
|
||||
src
|
||||
srclang
|
@ -0,0 +1,12 @@
|
||||
autoplay
|
||||
buffered
|
||||
controls
|
||||
crossorigin
|
||||
height
|
||||
loop
|
||||
muted
|
||||
played
|
||||
preload
|
||||
poster
|
||||
src
|
||||
width
|
@ -0,0 +1,7 @@
|
||||
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.
|
@ -0,0 +1,3 @@
|
||||
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.
|
@ -0,0 +1,10 @@
|
||||
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.
|
@ -0,0 +1,5 @@
|
||||
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.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user