]> git.rmz.io Git - dotfiles.git/commitdiff
vim: update qmake syntax
authorSamir Benmendil <me@rmz.io>
Wed, 14 Oct 2015 11:29:03 +0000 (12:29 +0100)
committerSamir Benmendil <me@rmz.io>
Wed, 14 Oct 2015 11:29:03 +0000 (12:29 +0100)
vim/ftplugin/qmake.vim [new file with mode: 0644]
vim/syntax/qmake.vim

diff --git a/vim/ftplugin/qmake.vim b/vim/ftplugin/qmake.vim
new file mode 100644 (file)
index 0000000..60f4804
--- /dev/null
@@ -0,0 +1 @@
+setlocal comments=:#
index f22399fdcc9bf22b42301b3a7b4c1b2d6f86e84b..df6e215ae2bca5adefecd45282e3129acad48c1c 100644 (file)
-" qmake project syntax file
-" Language:     qmake project
-" Maintainer:   Arto Jonsson <ajonsson@kapsi.fi>
-" https://github.com/artoj/qmake-syntax-vim/
+"" qmake.vim
+"" Description: syntax file for qmake tool from QT lib
+"" Author:              Makoto Nokata <nokatamakoto@gmail.com>
+"" Version:             0.1
+""
 
-if exists("b:current_syntax")
-    finish
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
 endif
 
-syntax case match
+let b:current_syntax = "qmake"
 
-" Comment
-syn match qmakeComment "#.*"
+syn case ignore
+syn keyword qmakeFunctionConst contained basename CONFIG count dirname error eval exists find for
+                             \ include infile isEmpty join member message prompt quote replace
+                             \ sprintf system unique warning contains
 
-" Variables
-syn match qmakeVariable /[A-Z_]\+\s*=/he=e-1
-syn match qmakeVariable /[A-Z_]\+\s*\(+\|-\||\|*\|\~\)=/he=e-2
+syn match qmakeFunction "\w\+\s*("he=e-1 contains=qmakeFunctionConst,qmakeOperator,qmakeVariableValue
+syn match qmakeCONFIGFunction "CONFIG\s*(.*)" contains=qmakeFunctionConst,qmakeOperator,
+                                            \ qmakeVariableValue,qmakeOptionsCONFIGConst
 
-" Value of a variable
-syn match qmakeValue /$$[A-Z_]\+/
-syn match qmakeValue /$${[A-Z_]\+}/
+syn match qmakeOperator       .[\.,!@#\$%\^&\*(){}\=:;|+\-/\]\[].
+syn match qmakeComment        /#.*$/
+syn match qmakeVariableValue  /\$\{1,2\}[{(\[]\{0,1\}\w\+[})\]]\{0,1\}/ contains=qmakeVariable
+syn match qmakeVariableDefine /\w\+\s*\(\|[+\-~*]\)=/he=e-1 contains=qmakeVariable,qmakeOperator
 
-" Environment variable
-syn match qmakeEnvVariable /$([A-Z_]\+)/
-syn match qmakeEnvVariable /$$([A-Z_]\+)/
+syn match  qmakeNumber .\d\+.
+syn match  qmakePath   "\(\.\|\w\)*/\(\(\.\|\w\)*\(\|/\)\)*"
+syn region qmakeString start=.". skip=.\\". end=.". oneline
 
-" Qt build configuration
-syn match qmakeQtConfiguration /$$\[[A-Z_]\+\]/
+syn region  qmakeOptionsQT start=.QT\s*\(\|[+\-~*]\)=. skip=.\\\s*$. end=.$. keepend
+                        \ contains=qmakeOptionsQTConst,qmakeOperator,qmakeVariable
+syn keyword qmakeOptionsQTConst core gui network opengl sql svg xml xmlpatterns qt3support contained
 
-" Builtins
-" + contains
-" + CONFIG
-syn keyword qmakeBuiltin basename count dirname error exists
-syn keyword qmakeBuiltin find for include infile isEmpty join member message
-syn keyword qmakeBuiltin prompt quote sprintf system unique warning
+syn region  qmakeOptionsTEMPLATE start=.TEMPLATE\s*\(\|[+\-~*]\)=. skip=.\\\s*$. end=.$. keepend
+                               \ contains=qmakeOptionsTEMPLATEConst,qmakeOperator,qmakeVariable
+syn keyword qmakeOptionsTEMPLATEConst   app lib subdirs vcapp vclib contained
 
-" Scopes
-syn match qmakeScope /[0-9A-Za-z_-]\+\(|\|:\)/he=e-1
-syn match qmakeScope /[0-9A-Za-z_-]\+\s*{/he=e-1
+syn region qmakeOptionsCONFIG start=.CONFIG\s*\(\|[+\-~*]\)=. skip=.\\\s*$. end=.$. keepend
+                            \ contains=qmakeOptionsCONFIGConst,qmakeOperator,qmakeVariable
+syn keyword qmakeOptionsCONFIGConst release debug debug_and_release build_all ordered precompile_header
+                                  \ warn_on warn_off create_prl link_prl qt thread x11 windows console
+                                  \ shared dll dylib static staticlib plugin designer uic3
+                                  \ no_lflags_merge resources 3dnow exceptions mmx rtti stl sse sse2
+                                  \ flat embed_manifest_dll embed_manifest_exe incremental
+                                  \ ppc x86 app_bundle lib_bundle largefile separate_debug_info contained
 
-hi def link qmakeComment Comment
-hi def link qmakeVariable Identifier
-hi def link qmakeBuiltin Function
-hi def link qmakeValue PreProc
-hi def link qmakeEnvVariable PreProc
-hi def link qmakeQtConfiguration PreProc
-hi def link qmakeScope Conditional
+syn keyword qmakeVariable CONFIG DEFINES DEF_FILE DEPENDPATH DEPLOYMENT DEPLOYMENT_PLUGIN
+                        \ DESTDIR DESTDIR_TARGET DLLDESTDIR DISTFILES DSP_TEMPLATE FORMS
+                        \ FORMS3 GUID HEADERS INCLUDEPATH INSTALLS LEXIMPLS LEXOBJECTS
+                        \ LEXSOURCES LIBS LITERAL_HASH MAKEFILE MAKEFILE_GENERATOR MOC_DIR
+                        \ OBJECTS OBJECTS_DIR OBJMOC POST_TARGETDEPS PRE_TARGETDEPS
+                        \ PRECOMPILED_HEADER PWD OUT_PWD 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_COMPILERS 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_INFO_PLIST
+                        \ 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
+                        \ REQUIRES RESOURCES RES_FILE SIGNATURE_FILE SOURCES SRCMOC SUBDIRS
+                        \ TARGET TARGET_EXT TEMPLATE TRANSLATIONS UICIMPLS UICOBJECTS UI_DIR
+                        \ UI_HEADERS_DIR UI_SOURCES_DIR VERSION VER_MAJ VER_MIN VER_PAT VPATH
+                        \ YACCIMPLS YACCOBJECTS YACCSOURCES _PRO_FILE_ _PRO_FILE_PWD_ contained
 
-let b:current_syntax = "qmake"
+syn match qmakeVariable .TARGET_\d\+\(\|\.\d\+\.\d\+\). contained
+
+hi def link qmakeVariable             Statement
+hi def link qmakeVariableValue        Type
+hi def link qmakeVariableDefine       Type
+hi def link qmakeComment              Comment
+hi def link qmakeString               String
+hi def link qmakeFunctionConst        Function
+hi def link qmakeOperator             Operator
+hi def link qmakeNumber               Number
+hi def link qmakePath                 qmakeString
+hi def link qmakeOptionsQTConst       Constant
+hi def link qmakeOptionsTEMPLATEConst Constant
+hi def link qmakeOptionsCONFIGConst   Constant