summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/foxpro.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/foxpro.vim')
-rw-r--r--runtime/syntax/foxpro.vim45
1 files changed, 40 insertions, 5 deletions
diff --git a/runtime/syntax/foxpro.vim b/runtime/syntax/foxpro.vim
index 8fabd23254..ca5d7e2f9d 100644
--- a/runtime/syntax/foxpro.vim
+++ b/runtime/syntax/foxpro.vim
@@ -1,16 +1,46 @@
" Vim syntax file
-" Language: FoxPro for DOS v2.x
-" Maintainer: Powing Tse <powing@hkem.com>
-" Last Change: 06 September 2001
+" Filename: foxpro.vim
+" Version: 1.0
+" Language: FoxPro for DOS/UNIX v2.6
+" Maintainer: Bill W. Smith, Jr. <donal@brewich.com>
+" Last Change: 15 May 2006
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" This file replaces the FoxPro for DOS v2.x syntax file
+" maintained by Powing Tse <powing@mcmug.org>
+"
+" Change Log: added support for FoxPro Codebook highlighting
+" corrected highlighting of comments that do NOT start in col 1
+" corrected highlighting of comments at end of line (&&)
+"
+"
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
+" FoxPro Codebook Naming Conventions
+syn match foxproCBConst "\<[c][A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBVar "\<[lgrt][acndlmf][A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBField "\<[a-z0-9]*\.[A-Za-z0-9_]*\>"
+" PROPER CodeBook field names start with the data type and do NOT have _
+syn match foxproCBField "\<[A-Za-z0-9]*\.[acndlm][A-Z][A-Za-z0-9]*\>"
+syn match foxproCBWin "\<w[rbcm][A-Z][A-Za-z0-9_]*\>"
+" CodeBook 2.0 defined objects as follows
+" This uses the hotkey from the screen builder as the second character
+syn match foxproCBObject "\<[lgr][bfthnkoli][A-Z][A-Za-z0-9_]*\>"
+" A later version added the following conventions for objects
+syn match foxproCBObject "\<box[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<fld[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<txt[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<phb[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<rdo[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<chk[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<pop[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<lst[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<inv[A-Z][A-Za-z0-9_]*\>"
+syn match foxproCBObject "\<mnu[A-Z][A-Za-z0-9_]*\>"
+
syntax case ignore
" Highlight special characters
@@ -685,6 +715,11 @@ if version >= 508 || !exists("did_foxpro_syn_inits")
HiLink foxproFloat Float
HiLink foxproComment Comment
HiLink foxproParenErr Error
+ HiLink foxproCBConst PreProc
+ HiLink foxproCBField Special
+ HiLink foxproCBVar Identifier
+ HiLink foxproCBWin Special
+ HiLink foxproCBObject Identifier
delcommand HiLink
endif