blob: 888b1402b3869facf3f4017e9d0ad181e2535458 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002" Language: XS (Perl extension interface language)
3" Maintainer: Andy Lester <andy@petdance.com>
4" URL: http://github.com/petdance/vim-perl
5" Last Change: 2009-08-14
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
Bram Moolenaar00a927d2010-05-14 23:24:24 +02007" Quit when a syntax file was already loaded
8if exists("b:current_syntax")
9 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000010endif
11
12" Read the C syntax to start with
Bram Moolenaar00a927d2010-05-14 23:24:24 +020013runtime! syntax/c.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000014
15" XS extentions
16" TODO: Figure out how to look for trailing '='.
Bram Moolenaar00a927d2010-05-14 23:24:24 +020017syn keyword xsKeyword MODULE PACKAGE PREFIX
18syn keyword xsKeyword OUTPUT: CODE: INIT: PREINIT: INPUT:
19syn keyword xsKeyword PPCODE: REQUIRE: CLEANUP: BOOT:
20syn keyword xsKeyword VERSIONCHECK: PROTOTYPES: PROTOTYPE:
21syn keyword xsKeyword ALIAS: INCLUDE: CASE:
Bram Moolenaar071d4272004-06-13 20:20:40 +000022" TODO: Figure out how to look for trailing '('.
Bram Moolenaar00a927d2010-05-14 23:24:24 +020023syn keyword xsMacro SV EXTEND PUSHs
24syn keyword xsVariable RETVAL NO_INIT
25"syn match xsCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1
26"syn match xsCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
Bram Moolenaar00a927d2010-05-14 23:24:24 +020028" Define the default highlighting, but only when an item doesn't have highlighting yet
29command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000030
Bram Moolenaar00a927d2010-05-14 23:24:24 +020031HiLink xsKeyword Keyword
32HiLink xsMacro Macro
33HiLink xsVariable Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +000034
Bram Moolenaar00a927d2010-05-14 23:24:24 +020035delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000036
37let b:current_syntax = "xs"
38
39" vim: ts=8