;;; autostart.el --- Load nxhtml ;; ;; Author: By: Lennart Borgman ;; Created: Fri Dec 15 2006 ;; Version: ;; Last-Updated: 2009-04-30 Thu ;; Keywords: ;; Compatibility: ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Commentary: ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Change log: ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; 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 2, 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; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Code: ;; Fix-me: Split out the definitions from this file so it can be ;; loaded during byte compilation. ;;(eval-when-compile (require 'web-vcs nil t)) ;;(eval-when-compile (require 'nxhtml-web-vcs nil t)) (message "Nxml/Nxhtml Autostart.el loading ...") (defconst nxhtml-autostart-trace nil) (defsubst nxhtml-autostart-trace (format-string &rest args) (when nxhtml-autostart-trace (apply 'message format-string args))) (defconst nxhtml-load-time-start (float-time)) ;; Add this dir to load-path (add-to-list 'load-path (file-name-directory (or load-file-name (when (boundp 'bytecomp-filename) bytecomp-filename) buffer-file-name))) (require 'nxhtml-base) (eval-and-compile (when (fboundp 'nxml-mode) (load (expand-file-name "etc/schema/schema-path-patch" nxhtml-install-dir)))) ;; (defun nxhtml-custom-load-and-get-value (symbol) ;; (custom-load-symbol symbol) ;; (symbol-value symbol)) (defun nxhtml-list-loaded-features (use-message) (interactive (list t)) (let ((buf (when use-message ;(called-interactively-p) (get-buffer-create "*nXhtml loaded features*")))) (if buf (with-current-buffer buf (erase-buffer)) (message "") (message "=== Loaded at nxhtml/autostart.el end:")) (dolist (feature '( as-external html-chklnk html-imenu html-move html-pagetoc html-quote html-site html-toc html-upl html-wtoc inlimg mumamo nxhtml-bug nxhtml-menu nxhtml-mode nxhtml-mumamo nxhtml-strval nxhtml nxhtml-js nxml-where outline-magic rngalt tidy-xhtml xhtml-help )) (when (featurep feature) (if buf (with-current-buffer buf (insert (format "(feature '%s)=%s\n" feature (featurep feature)))) (message "(feature '%s)=%s" feature (featurep feature))))) (if buf (display-buffer buf) (message "")))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Code that will run on loading this file (if (< emacs-major-version 23) (unless (featurep 'autostart22) (load (expand-file-name "autostart22" nxhtml-install-dir))) ;; Check that the nxml-mode included with Emacs is used. There ;; has been some problems on Debian with this. (let ((nxml-mode-file (locate-library "nxml-mode")) (help-file (locate-library "help"))) (unless (string= (expand-file-name ".." help-file) (expand-file-name "../.." nxml-mode-file)) (error "Wrong nxml-mode=%s used, please use the one that comes with Emacs" nxml-mode-file)))) (let* ((util-dir (file-name-as-directory (expand-file-name "util" nxhtml-install-dir))) (related-dir (file-name-as-directory (expand-file-name "related" nxhtml-install-dir))) (nxhtml-dir (file-name-as-directory (expand-file-name "nxhtml" nxhtml-install-dir))) ;;(company-dir (file-name-as-directory (expand-file-name "util/nxhtml-company-mode" nxhtml-install-dir))) (tests-dir (file-name-as-directory (expand-file-name "tests" nxhtml-install-dir)))) (add-to-list 'load-path nxhtml-dir) (add-to-list 'load-path related-dir) (add-to-list 'load-path util-dir) (add-to-list 'load-path nxhtml-install-dir) ;;(add-to-list 'load-path company-dir) (add-to-list 'load-path tests-dir) (nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start)) ;; Autoloading etc ;; (unless (featurep 'web-vcs) ;; (load (expand-file-name "web-vcs" nxhtml-install-dir) (not nxhtml-autoload-web))) ;; (when (catch 'miss ;; (dolist (file nxhtml-basic-files) ;; (let ((dl-file (expand-file-name file nxhtml-install-dir))) ;; (unless (file-exists-p dl-file) ;; (throw 'miss t)))) ;; nil) ;; (nxhtml-setup-auto-download nxhtml-install-dir)) (unless (featurep 'web-autoload) (load (expand-file-name "web-autoload" nxhtml-install-dir) (not nxhtml-autoload-web))) (when nxhtml-autoload-web (ad-activate 'require t)) ;; Fix-me: Why must as-external be loaded? Why doesn't it work in batch? ;;(unless noninteractive (require 'as-external)) (unless (featurep 'nxhtml-loaddefs) (load (expand-file-name "nxhtml-loaddefs" nxhtml-install-dir) nxhtml-autoload-web)) (nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start)) ;; Turn on `nxhtml-menu-mode' unconditionally (nxhtml-autostart-trace "Turn on `nxhtml-menu-mode' unconditionally") (nxhtml-menu-mode 1) (nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start)) ;; Patch the rnc include paths (when (fboundp 'rncpp-patch-xhtml-loader) (rncpp-patch-xhtml-loader)) (nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start)) ;; Load nXhtml (unless (featurep 'nxhtml-autoload) (load (expand-file-name "nxhtml/nxhtml-autoload" nxhtml-install-dir)))) (nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start)) (unless (featurep 'nxhtml-autostart) ;; Provide the feature here to avoid loading looping on error. (provide 'nxhtml-autostart) ;; Tell what have been loaded of nXhtml: (when nxhtml-autostart-trace (nxhtml-list-loaded-features nil)) ;; How long time did it all take? (message "Nxml/Nxhtml Autostart.el loaded in %.1f seconds" (- (float-time) nxhtml-load-time-start))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; autostart.el ends here