-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathqt-pro-mode.el
120 lines (112 loc) · 6.05 KB
/
qt-pro-mode.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
;;; qt-pro-mode.el --- Qt Pro/Pri major mode
;;
;;; Copyright (C) 2007 Free Software Foundation, Inc.
;;
;;; Author: Todd Neal <[email protected]>
;; Version: 1.0.0
;; Keywords: extensions
;; Package-Requires: ((emacs "24"))
;;
;; This file 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 file 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; see the file COPYING. If not, write to
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;
;;; Commentary:
;;
;; Provides a major-mode for editing Qt build-system files.
;;
;;; Version 1.0 (7 January 2007)
;;
;; Based off simple.el
;;
;; Add the following to your .emacs to install:
;;
;; (require 'qt-pro-mode)
;; (add-to-list 'auto-mode-alist '("\\.pr[io]$" . qt-pro-mode))
;;
;; or:
;;
;; (use-package qt-pro-mode
;; :ensure t
;; :mode ("\\.pro\\'" "\\.pri\\'"))
;;; Code:
(defvar qt-pro-mode-syntax-table
(let ((st (make-syntax-table)))
(modify-syntax-entry ?# "<" st)
(modify-syntax-entry ?\n ">" st)
st)
"Syntax table for `qt-pro-mode'.")
(defvar qt-pro-font-lock-keywords
`(("$$(\\s *\\w+\\s *)" (0 font-lock-function-name-face t))
("$$\\[\\s *\\w+\\s *\\]" (0 font-lock-function-name-face t))
(,(regexp-opt '("basename" "contains" "count" "dirname" "error" "eval" "exists""find"
"for" "include" "infile" "isEmpty" "join" "member" "message" "prompt" "quote"
"replace" "sprintf" "system" "unique" "warning") `words)
(0 font-lock-function-name-face))
(,(regexp-opt '("CONFIG" "DEFINES" "DEF_FILE" "DEPENDPATH" "DEPLOYMENT" "DESTDIR"
"DESTDIR_TARGET" "DLLDESTDIR" "DISTFILES" "DSP_TEMPLATE" "FORMS"
"FORMS3" "HEADERS" "INCLUDEPATH" "INSTALLS" "LEXIMPLS" "LEXOBJECTS"
"LEXSOURCES" "LIBS" "LITERAL_HASH" "MAKEFILE" "MAKEFILE_GENERATOR"
"MOC_DIR" "OBJECTS" "OBJECTS_DIR" "OBJMOC" "POST_TARGETDEPS"
"PRE_TARGETDEPS" "PRECOMPILED_HEADER" "QMAKE" "QMAKESPEC"
"QMAKE_APP_FLAG" "QMAKE_APP_OR_DLL" "QMAKE_AR_CMD" "QMAKE_BUNDLE_DATA"
"QMAKE_BUNDLE_EXTENSION" "QMAKE_CC" "QMAKE_CFLAGS_DEBUG"
"QMAKE_CFLAGS_MT" "QMAKE_CFLAGS_MT_DBG" "QMAKE_CFLAGS_MT_DLL"
"QMAKE_CFLAGS_MT_DLLDBG" "QMAKE_CFLAGS_RELEASE" "QMAKE_CFLAGS_SHLIB"
"QMAKE_CFLAGS_THREAD" "QMAKE_CFLAGS_WARN_OFF" "QMAKE_CFLAGS_WARN_ON"
"QMAKE_CLEAN" "QMAKE_CXX" "QMAKE_CXXFLAGS" "QMAKE_CXXFLAGS_DEBUG"
"QMAKE_CXXFLAGS_MT" "QMAKE_CXXFLAGS_MT_DBG" "QMAKE_CXXFLAGS_MT_DLL"
"QMAKE_CXXFLAGS_MT_DLLDBG" "QMAKE_CXXFLAGS_RELEASE"
"QMAKE_CXXFLAGS_SHLIB" "QMAKE_CXXFLAGS_THREAD"
"QMAKE_CXXFLAGS_WARN_OFF" "QMAKE_CXXFLAGS_WARN_ON" "QMAKE_DISTCLEAN"
"QMAKE_EXTENSION_SHLIB" "QMAKE_EXT_MOC" "QMAKE_EXT_UI" "QMAKE_EXT_PRL"
"QMAKE_EXT_LEX" "QMAKE_EXT_YACC" "QMAKE_EXT_OBJ" "QMAKE_EXT_CPP"
"QMAKE_EXT_H" "QMAKE_EXTRA_TARGETS" "QMAKE_FAILED_REQUIREMENTS" "QMAKE_FILETAGS"
"QMAKE_FRAMEWORK_BUNDLE_NAME" "QMAKE_FRAMEWORK_VERSION" "QMAKE_INCDIR"
"QMAKE_INCDIR_OPENGL" "QMAKE_INCDIR_QT" "QMAKE_INCDIR_THREAD"
"QMAKE_INCDIR_X11" "QMAKE_LFLAGS" "QMAKE_LFLAGS_CONSOLE"
"QMAKE_LFLAGS_CONSOLE_DLL" "QMAKE_LFLAGS_DEBUG" "QMAKE_LFLAGS_PLUGIN"
"QMAKE_LFLAGS_QT_DLL" "QMAKE_LFLAGS_RELEASE" "QMAKE_LFLAGS_SHAPP"
"QMAKE_LFLAGS_SHLIB" "QMAKE_LFLAGS_SONAME" "QMAKE_LFLAGS_THREAD"
"QMAKE_LFLAGS_WINDOWS" "QMAKE_LFLAGS_WINDOWS_DLL" "QMAKE_LIBDIR"
"QMAKE_LIBDIR_FLAGS" "QMAKE_LIBDIR_OPENGL" "QMAKE_LIBDIR_QT"
"QMAKE_LIBDIR_X11" "QMAKE_LIBS" "QMAKE_LIBS_CONSOLE"
"QMAKE_LIBS_OPENGL" "QMAKE_LIBS_OPENGL_QT" "QMAKE_LIBS_QT"
"QMAKE_LIBS_QT_DLL" "QMAKE_LIBS_QT_OPENGL" "QMAKE_LIBS_QT_THREAD"
"QMAKE_LIBS_RT" "QMAKE_LIBS_RTMT" "QMAKE_LIBS_THREAD"
"QMAKE_LIBS_WINDOWS" "QMAKE_LIBS_X11" "QMAKE_LIBS_X11SM"
"QMAKE_LIB_FLAG" "QMAKE_LINK_SHLIB_CMD" "QMAKE_POST_LINK"
"QMAKE_PRE_LINK" "QMAKE_LN_SHLIB" "QMAKE_MAC_SDK"
"QMAKE_MACOSX_DEPLOYMENT_TARGET" "QMAKE_MAKEFILE" "QMAKE_MOC_SRC"
"QMAKE_QMAKE" "QMAKE_QT_DLL" "QMAKE_RESOURCE_FLAGS" "QMAKE_RUN_CC"
"QMAKE_RUN_CC_IMP" "QMAKE_RUN_CXX" "QMAKE_RUN_CXX_IMP" "QMAKE_TARGET"
"QMAKE_UIC" "QT" "QTPLUGIN" "QT_VERSION" "QT_MAJOR_VERSION"
"QT_MINOR_VERSION" "QT_PATCH_VERSION" "RC_FILE" "RCC_DIR"
"RESOURCES" "REQUIRES"
"RES_FILE" "SIGNATURE_FILE" "SOURCES" "SRCMOC" "SUBDIRS" "TARGET"
"TARGET_EXT" "TARGET_x" "TARGET_x.y.z" "TEMPLATE" "TRANSLATIONS"
"UICIMPLS" "UICOBJECTS" "UI_DIR" "UI_HEADERS_DIR" "UI_SOURCES_DIR"
"VERSION" "VER_MAJ" "VER_MIN" "VER_PAT" "VPATH" "YACCIMPLS"
"YACCOBJECTS" "YACCSOURCES" "LANGUAGE") `words)
(0 font-lock-keyword-face)))
"Keyword highlighting specification for `qt-pro-mode'.")
;;;###autoload
(define-derived-mode qt-pro-mode prog-mode "Qt"
"A major mode for editing Qt build-system files."
(set (make-local-variable 'comment-start) "# ")
(set (make-local-variable 'comment-start-skip) "#+\\s-*")
(set (make-local-variable 'font-lock-defaults) '(qt-pro-font-lock-keywords)))
(add-to-list 'auto-mode-alist '("\\.qrc\\'" . xml-mode))
(provide 'qt-pro-mode)
;;; qt-pro-mode.el ends here