1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-03-21 01:05:11 +01:00
vim/runtime/syntax/po.vim

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

164 lines
8.1 KiB
VimL
Raw Permalink Normal View History

2004-06-13 20:20:40 +00:00
" Vim syntax file
" Language: po (gettext)
2005-06-22 22:29:18 +00:00
" Maintainer: Dwayne Bailey <dwayne@translate.org.za>
" Last Change: 2024 Nov 28
2008-06-24 21:56:24 +00:00
" Contributors: Dwayne Bailey (Most advanced syntax highlighting)
" Leonardo Fontenelle (Spell checking)
2010-09-21 22:34:02 +02:00
" Nam SungHyun <namsh@kldp.org> (Original maintainer)
" Eisuke Kawashima (add format-flags: #16132)
2004-06-13 20:20:40 +00:00
" quit when a syntax file was already loaded
if exists("b:current_syntax")
2004-06-13 20:20:40 +00:00
finish
endif
let s:keepcpo= &cpo
set cpo&vim
2004-06-13 20:20:40 +00:00
2005-06-22 22:29:18 +00:00
syn sync minlines=10
" Identifiers
2008-06-24 21:56:24 +00:00
syn match poStatementMsgCTxt "^msgctxt"
2005-06-22 22:29:18 +00:00
syn match poStatementMsgidplural "^msgid_plural" contained
syn match poPluralCaseN "[0-9]" contained
syn match poStatementMsgstr "^msgstr\(\[[0-9]\]\)" contains=poPluralCaseN
" Simple HTML and XML highlighting
2008-06-24 21:56:24 +00:00
syn match poHtml "<\_[^<>]\+>" contains=poHtmlTranslatables,poLineBreak
2005-06-22 22:29:18 +00:00
syn match poHtmlNot +"<[^<]\+>"+ms=s+1,me=e-1
2008-06-24 21:56:24 +00:00
syn region poHtmlTranslatables start=+\(abbr\|alt\|content\|summary\|standby\|title\)=\\"+ms=e-1 end=+\\"+ contained contains=@Spell
syn match poLineBreak +"\n"+ contained
2005-06-22 22:29:18 +00:00
" Translation blocks
2008-06-24 21:56:24 +00:00
syn region poMsgCTxt matchgroup=poStatementMsgCTxt start=+^msgctxt "+rs=e-1 matchgroup=poStringCTxt end=+^msgid "+me=s-1 contains=poStringCTxt
2005-06-22 22:29:18 +00:00
syn region poMsgID matchgroup=poStatementMsgid start=+^msgid "+rs=e-1 matchgroup=poStringID end=+^msgstr\(\|\[[\]0\[]\]\) "+me=s-1 contains=poStringID,poStatementMsgidplural,poStatementMsgid
syn region poMsgSTR matchgroup=poStatementMsgstr start=+^msgstr\(\|\[[\]0\[]\]\) "+rs=e-1 matchgroup=poStringSTR end=+\n\n+me=s-1 contains=poStringSTR,poStatementMsgstr
2008-06-24 21:56:24 +00:00
syn region poStringCTxt start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region poStringID start=+"+ skip=+\\\\\|\\"+ end=+"+ contained
2008-06-24 21:56:24 +00:00
\ contains=poSpecial,poFormat,poCommentKDE,poPluralKDE,poKDEdesktopFile,poHtml,poAcceleratorId,poHtmlNot,poVariable
syn region poStringSTR start=+"+ skip=+\\\\\|\\"+ end=+"+ contained
2008-06-24 21:56:24 +00:00
\ contains=@Spell,poSpecial,poFormat,poHeaderItem,poCommentKDEError,poHeaderUndefined,poPluralKDEError,poMsguniqError,poKDEdesktopFile,poHtml,poAcceleratorStr,poHtmlNot,poVariable
2005-06-22 22:29:18 +00:00
" Header and Copyright
2010-09-21 22:34:02 +02:00
syn match poHeaderItem "\(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|Language\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
2008-06-24 21:56:24 +00:00
syn match poHeaderUndefined "\(PACKAGE VERSION\|YEAR-MO-DA HO:MI+ZONE\|FULL NAME <EMAIL@ADDRESS>\|LANGUAGE <LL@li.org>\|CHARSET\|ENCODING\|INTEGER\|EXPRESSION\)" contained
2005-06-22 22:29:18 +00:00
syn match poCopyrightUnset "SOME DESCRIPTIVE TITLE\|FIRST AUTHOR <EMAIL@ADDRESS>, YEAR\|Copyright (C) YEAR Free Software Foundation, Inc\|YEAR THE PACKAGE\'S COPYRIGHT HOLDER\|PACKAGE" contained
" Translation comment block including: translator comment, automatic comments, flags and locations
2005-06-22 22:29:18 +00:00
syn match poComment "^#.*$"
syn keyword poFlagFuzzy fuzzy contained
syn match poFlagFormat /\<\%(no-\)\?awk-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?boost-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?c++-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?c-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?csharp-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?elisp-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?gcc-internal-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?gfc-internal-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?java-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?java-printf-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?javascript-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?kde-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?librep-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?lisp-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?lua-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?objc-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?object-pascal-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?perl-brace-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?perl-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?php-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?python-brace-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?python-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?qt-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?qt-plural-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?ruby-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?scheme-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?sh-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?smalltalk-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?tcl-format\>/ contained
syn match poFlagFormat /\<\%(no-\)\?ycp-format\>/ contained
2005-06-22 22:29:18 +00:00
syn match poCommentTranslator "^# .*$" contains=poCopyrightUnset
syn match poCommentAutomatic "^#\..*$"
2005-06-22 22:29:18 +00:00
syn match poCommentSources "^#:.*$"
syn match poCommentFlags "^#,.*$" contains=poFlagFuzzy,poFlagFormat
syn match poCommentPrevious "^#|.*$"
2005-06-22 22:29:18 +00:00
" Translations (also includes header fields as they appear in a translation msgstr)
syn region poCommentKDE start=+"_: +ms=s+1 end="\\n" end="\"\n^msgstr"me=s-1 contained
syn region poCommentKDEError start=+"\(\|\s\+\)_:+ms=s+1 end="\\n" end=+"\n\n+me=s-1 contained
syn match poPluralKDE +"_n: +ms=s+1 contained
syn region poPluralKDEError start=+"\(\|\s\+\)_n:+ms=s+1 end="\"\n\n"me=s-1 contained
2004-06-13 20:20:40 +00:00
syn match poSpecial contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
syn match poFormat "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
syn match poFormat "%%" contained
2005-06-22 22:29:18 +00:00
" msguniq and msgcat conflicts
syn region poMsguniqError matchgroup=poMsguniqErrorMarkers start="#-#-#-#-#" end='#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)\\n' contained
" Obsolete messages
syn match poObsolete "^#\~.*$"
2005-06-22 22:29:18 +00:00
" KDE Name= handling
syn match poKDEdesktopFile "\"\(Name\|Comment\|GenericName\|Description\|Keywords\|About\)="ms=s+1,me=e-1
" Accelerator keys - this messes up if the preceding or following char is a multibyte unicode char
syn match poAcceleratorId contained "[^&_~][&_~]\(\a\|\d\)[^:]"ms=s+1,me=e-1
2008-06-24 21:56:24 +00:00
syn match poAcceleratorStr contained "[^&_~][&_~]\(\a\|\d\)[^:]"ms=s+1,me=e-1 contains=@Spell
2005-06-22 22:29:18 +00:00
" Variables simple
syn match poVariable contained "%\d"
2004-06-13 20:20:40 +00:00
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link poCommentSources PreProc
hi def link poComment Comment
hi def link poCommentAutomatic Comment
hi def link poCommentTranslator Comment
hi def link poCommentFlags Special
hi def link poCommentPrevious Comment
hi def link poCopyrightUnset Todo
hi def link poFlagFuzzy Todo
hi def link poFlagFormat Todo
hi def link poObsolete Comment
hi def link poStatementMsgid Statement
hi def link poStatementMsgstr Statement
hi def link poStatementMsgidplural Statement
hi def link poStatementMsgCTxt Statement
hi def link poPluralCaseN Constant
hi def link poStringCTxt Comment
hi def link poStringID String
hi def link poStringSTR String
hi def link poCommentKDE Comment
hi def link poCommentKDEError Error
hi def link poPluralKDE Comment
hi def link poPluralKDEError Error
hi def link poHeaderItem Identifier
hi def link poHeaderUndefined Todo
hi def link poKDEdesktopFile Identifier
hi def link poHtml Identifier
hi def link poHtmlNot String
hi def link poHtmlTranslatables String
hi def link poLineBreak String
hi def link poFormat poSpecial
hi def link poSpecial Special
hi def link poAcceleratorId Special
hi def link poAcceleratorStr Special
hi def link poVariable Special
hi def link poMsguniqError Special
hi def link poMsguniqErrorMarkers Comment
2004-06-13 20:20:40 +00:00
let b:current_syntax = "po"
let &cpo = s:keepcpo
unlet s:keepcpo
2004-06-13 20:20:40 +00:00
" vim:set ts=8 sts=2 sw=2 noet: