mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-14 01:50:22 -08:00
(autoload-rubric): Don't use any more. * cedet/semantic/fw.el (semantic/loaddefs): * cedet/srecode.el (srecode/loaddefs): * cedet/ede.el (ede/loaddefs): Load rather than require. * lisp/cedet/ede/cpp-root.el: * lisp/cedet/ede/emacs.el: * lisp/cedet/ede/files.el: * lisp/cedet/ede/linux.el: * lisp/cedet/ede/locate.el: * lisp/cedet/ede/make.el: * lisp/cedet/ede/shell.el: * lisp/cedet/ede/speedbar.el: * lisp/cedet/ede/system.el: * lisp/cedet/ede/util.el: * lisp/cedet/semantic/analyze.el: * lisp/cedet/semantic/bovine.el: * lisp/cedet/semantic/complete.el: * lisp/cedet/semantic/ctxt.el: * lisp/cedet/semantic/db-file.el: * lisp/cedet/semantic/db-find.el: * lisp/cedet/semantic/db-global.el: * lisp/cedet/semantic/db-mode.el: * lisp/cedet/semantic/db-typecache.el: * lisp/cedet/semantic/db.el: * lisp/cedet/semantic/debug.el: * lisp/cedet/semantic/dep.el: * lisp/cedet/semantic/doc.el: * lisp/cedet/semantic/edit.el: * lisp/cedet/semantic/find.el: * lisp/cedet/semantic/format.el: * lisp/cedet/semantic/html.el: * lisp/cedet/semantic/ia-sb.el: * lisp/cedet/semantic/ia.el: * lisp/cedet/semantic/idle.el: * lisp/cedet/semantic/lex-spp.el: * lisp/cedet/semantic/lex.el: * lisp/cedet/semantic/mru-bookmark.el: * lisp/cedet/semantic/scope.el: * lisp/cedet/semantic/senator.el: * lisp/cedet/semantic/sort.el: * lisp/cedet/semantic/symref.el: * lisp/cedet/semantic/tag-file.el: * lisp/cedet/semantic/tag-ls.el: * lisp/cedet/semantic/tag-write.el: * lisp/cedet/semantic/tag.el: * lisp/cedet/semantic/util-modes.el: * lisp/cedet/semantic/analyze/complete.el: * lisp/cedet/semantic/analyze/refs.el: * lisp/cedet/semantic/bovine/c.el: * lisp/cedet/semantic/bovine/gcc.el: * lisp/cedet/semantic/bovine/make.el: * lisp/cedet/semantic/bovine/scm.el: * lisp/cedet/semantic/decorate/include.el: * lisp/cedet/semantic/decorate/mode.el: * lisp/cedet/semantic/symref/cscope.el: * lisp/cedet/semantic/symref/global.el: * lisp/cedet/semantic/symref/grep.el: * lisp/cedet/semantic/symref/idutils.el: * lisp/cedet/semantic/symref/list.el: * lisp/cedet/semantic/wisent/java-tags.el: * lisp/cedet/semantic/wisent/javascript.el: * lisp/cedet/srecode/compile.el: * lisp/cedet/srecode/cpp.el: * lisp/cedet/srecode/document.el: * lisp/cedet/srecode/el.el: * lisp/cedet/srecode/expandproto.el: * lisp/cedet/srecode/getset.el: * lisp/cedet/srecode/insert.el: * lisp/cedet/srecode/java.el: * lisp/cedet/srecode/map.el: * lisp/cedet/srecode/mode.el: * lisp/cedet/srecode/template.el: * lisp/cedet/srecode/texi.el: Remove the file-local setting of generated-autoload-feature.
106 lines
3.7 KiB
EmacsLisp
106 lines
3.7 KiB
EmacsLisp
;;; semantic/wisent/javascript.el --- javascript parser support
|
|
|
|
;; Copyright (C) 2005, 2009 Free Software Foundation, Inc.
|
|
|
|
;; Author: Eric Ludlam <zappo@gnu.org>
|
|
;; Keywords: syntax
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
;; GNU Emacs 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.
|
|
|
|
;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
;;; Commentary:
|
|
;;
|
|
;; Parser support for javascript language.
|
|
|
|
|
|
;;; Code:
|
|
(require 'semantic/java)
|
|
(require 'semantic/wisent)
|
|
(require 'semantic/wisent/js-wy)
|
|
|
|
(defun wisent-javascript-jv-expand-tag (tag)
|
|
"Expand TAG into a list of equivalent tags, or nil.
|
|
Expand multiple variable declarations in the same statement, that is
|
|
tags of class `variable' whose name is equal to a list of elements of
|
|
the form (NAME VALUE START . END). NAME is a variable name. VALUE is
|
|
an initializer START and END are the bounds in the declaration, related
|
|
to this variable NAME."
|
|
(let (elts elt value clone start end xpand)
|
|
(when (and (eq 'variable (semantic-tag-class tag))
|
|
(consp (setq elts (semantic-tag-name tag))))
|
|
;; There are multiple names in the same variable declaration.
|
|
(while elts
|
|
;; For each name element, clone the initial tag and give it
|
|
;; the name of the element.
|
|
(setq elt (car elts)
|
|
elts (cdr elts)
|
|
clone (semantic-tag-clone tag (car elt))
|
|
value (car (cdr elt))
|
|
start (if elts (caddr elt) (semantic-tag-start tag))
|
|
end (if xpand (cdddr elt) (semantic-tag-end tag))
|
|
xpand (cons clone xpand))
|
|
;; Set the definition of the cloned tag
|
|
(semantic-tag-put-attribute clone :default-value value)
|
|
;; Set the bounds of the cloned tag with those of the name
|
|
;; element.
|
|
(semantic-tag-set-bounds clone start end))
|
|
xpand)))
|
|
|
|
;;; Override Methods
|
|
;;
|
|
;; These methods override aspects of how semantic-tools can access
|
|
;; the tags created by the javascript parser.
|
|
;; Local context
|
|
(define-mode-overload-implementation semantic-get-local-variables
|
|
javascript-mode ()
|
|
"Get local values from a specific context.
|
|
This function overrides `get-local-variables'."
|
|
;; Does javascript have identifiable local variables?
|
|
nil)
|
|
|
|
|
|
;;; Setup Function
|
|
;;
|
|
;; This sets up the javascript parser
|
|
|
|
;; In semantic-imenu.el, not part of Emacs.
|
|
(defvar semantic-imenu-summary-function)
|
|
|
|
;;;###autoload
|
|
(defun wisent-javascript-setup-parser ()
|
|
"Setup buffer for parse."
|
|
(wisent-javascript-jv-wy--install-parser)
|
|
(setq
|
|
;; Lexical Analysis
|
|
semantic-lex-analyzer 'javascript-lexer-jv
|
|
semantic-lex-number-expression semantic-java-number-regexp
|
|
;; semantic-lex-depth nil ;; Full lexical analysis
|
|
;; Parsing
|
|
semantic-tag-expand-function 'wisent-javascript-jv-expand-tag
|
|
;; Environment
|
|
semantic-imenu-summary-function 'semantic-format-tag-name
|
|
imenu-create-index-function 'semantic-create-imenu-index
|
|
semantic-command-separation-character ";"
|
|
))
|
|
|
|
(provide 'semantic/wisent/javascript-jv)
|
|
|
|
;; Local variables:
|
|
;; generated-autoload-file: "../loaddefs.el"
|
|
;; generated-autoload-load-name: "semantic/wisent/javascript"
|
|
;; End:
|
|
|
|
;; arch-tag: 15416a3a-84ca-4b3b-a13c-e7a1891ec3ea
|
|
;;; semantic/wisent/javascript-jv.el ends here
|