src-highlite.git - src-highlite

index : src-highlite.git
src-highlite
summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorLorenzo Bettini <bettini@dsi.unifi.it>2012年04月14日 17:11:29 +0200
committerLorenzo Bettini <bettini@dsi.unifi.it>2012年04月14日 17:11:29 +0200
commit7356b4a61659d2031034eff21c9ca2745e2a1e21 (patch)
treeeb8f90679e50bd60aec6d14ede54966516056613 /src
parentc65db3fa0978ca32926d46f09db10738332d7b49 (diff)
downloadsrc-highlite-7356b4a61659d2031034eff21c9ca2745e2a1e21.tar.gz
Lilypond language definition
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am 5
-rw-r--r--src/lang.map 4
-rw-r--r--src/lilypond.lang 143
-rw-r--r--src/lilypond.style 21
4 files changed, 170 insertions, 3 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 0f2bf1f..d3fc9a2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -83,7 +83,8 @@ texinfo.lang haskell.lang haskell_literate.lang \
manifest.lang asm.lang todo.lang applescript.lang \
vbscript.lang awk.lang bat.lang clipper.lang cobol.lang d.lang \
errors.lang erlang.lang proto.lang vala.lang lisp.lang \
-scheme.lang po.lang opa.lang javalog.lang upc.lang tml.lang
+scheme.lang po.lang opa.lang javalog.lang upc.lang tml.lang \
+lilypond.lang
LANGFILES_NOTTOCHECK= \
tml_formatting_all.lang tml_macrolinks.lang tml_macrosdelayed2.lang \
@@ -115,7 +116,7 @@ odf.outlang \
mediawiki.outlang
-STYLEFILES = texinfo.style esc.style
+STYLEFILES = texinfo.style esc.style lilypond.style
source_highlightdata_DATA = \
$(LANGFILES) $(LANGFILES_NOTTOCHECK) $(OUTLANGFILES) \
diff --git a/src/lang.map b/src/lang.map
index ee05df7..2eefacd 100644
--- a/src/lang.map
+++ b/src/lang.map
@@ -150,4 +150,6 @@ pot = po.lang
opa = opa.lang
javalog = javalog.lang
upc = upc.lang
-tml = tml.lang \ No newline at end of file
+tml = tml.lang
+lilypond = lilypond.lang
+ly = lilypond.lang \ No newline at end of file
diff --git a/src/lilypond.lang b/src/lilypond.lang
new file mode 100644
index 0000000..e75655d
--- /dev/null
+++ b/src/lilypond.lang
@@ -0,0 +1,143 @@
+# LilyPond v2.16.0
+# Federico Bruni
+
+string delim "\"" "\"" multiline
+
+comment delim "%{" "%}" multiline nested
+comment start "%"
+
+# Scheme
+environment scheme delim '#\'?\(' ")" multiline nested begin
+ string delim "\"" "\"" multiline
+ comment start ";"
+ environment scheme delim "(" ")" multiline nested begin
+ string delim "\"" "\"" multiline
+ comment start ";"
+ end
+end
+
+vardef SCHEME_VALUE = '##(t|f)', '#{1,2}\'?[[:alnum:]\.:+-]+'
+scheme_value = $SCHEME_VALUE
+
+
+# Symbols
+vardef CBRACKET = "{|}|<<|>>"
+cbracket = $CBRACKET
+
+symbol = "(|)|~|^|_"
+dynamic = '\\(<|>|!|f{1,5}|p{1,5}|m(f|p)|fp|(r|s)fz|s(f|p){1,2})(?!\w)'
+
+# Numbers
+specialchar = '(?<!#)-[1-5]\b', '\\[0-9]\b' # strings and fingerings
+note_duration = '(?<=[a-zR\',!?>\*])(1|2|4|8|16|32|64|128)(\.+|\b)'
+value = '[[:digit:]/]+'
+
+# Markup commands (any \command inside \markup{})
+environment markup delim '\\markup\s*\{' "}" multiline nested begin
+ # definitions I want to preserve in this environment
+ cbracket = $CBRACKET
+ string delim "\"" "\"" multiline
+ comment delim "%{" "%}" multiline nested
+ comment start "%"
+ scheme_value = $SCHEME_VALUE
+ environment scheme delim '#\'?\(' ")" multiline nested begin
+ string delim "\"" "\"" multiline
+ comment start ";"
+ environment scheme delim "(" ")" multiline nested begin
+ string delim "\"" "\"" multiline
+ comment start ";"
+ end
+ end
+ # actual definition
+ markup_command = '\\[[:alpha:]-]+'
+
+ # needed for nested blocks inside \markup{}
+ environment markup delim "{" "}" multiline nested begin
+ cbracket = $CBRACKET
+ string delim "\"" "\"" multiline
+ comment delim "%{" "%}" multiline nested
+ comment start "%"
+ scheme_value = $SCHEME_VALUE
+ environment scheme delim '#\'?\(' ")" multiline nested begin
+ string delim "\"" "\"" multiline
+ comment start ";"
+ environment scheme delim "(" ")" multiline nested begin
+ string delim "\"" "\"" multiline
+ comment start ";"
+ end
+ end
+ markup_command = '\\[[:alpha:]-]+'
+ end
+end
+
+lyric_command = '\\(lyricmode|lyrics(to)?)'
+
+# Main commands
+preproc = '\\(book(part)?|context|consists|header|include|language|layout',
+ 'midi|once|override(Property)?|paper|remove(WithTag)?',
+ 'revert|score|(un)?set|version|with)\b'
+
+# Variables of music functions
+variable = '(alto|baritone|bass|french|mezzosoprano|percussion',
+ 'soprano|subbass|tenor|treble|varbaritone',
+ 'percent|tremolo|unfold|volta',
+ '\\(aeolian|dorian|ionian|lydian|locrian|minor|major|mixolydian|phrygian))\b'
+
+header_variable = 'arranger', 'breakbefore', 'composer', 'copyright', 'date',
+ 'dedication', 'enteredby', 'filename', 'footer', 'instrument\b', 'lastupdated',
+ 'maintainer(Email|Web)?', 'meter', 'moreInfo',
+ 'mutopia(composer|instrument|opus|poet|title)?',
+ 'opus', 'poet', 'piece', 'source(url)?', 'style', '(sub){0,2}title',
+ 'tagline', 'texidoc'
+
+# Contexts
+# old regexp: '([A-Z][a-z]+){2,}' <-- too greedy, a list is better
+context = '\\?(ChoirStaff|ChordNames|CueVoice|Devnull|Drum(Staff|Voice)',
+ 'Dynamics|FiguredBass|FretBoards|Global|GrandStaff',
+ 'GregorianTranscription(Staff|Voice)|Lyrics|Mensural(Staff|Voice)',
+ 'NoteNames|PianoStaff|RhythmicStaff|Score|Staff(Group)?',
+ 'Tab(Staff|Voice)|Vaticana(Staff|Voice)|Voice)\b'
+
+# Layout objects
+layout_object = 'Accidental(Cautionary|Placement|Suggestion)?',
+ 'Ambitus(Accidental|Line|NoteHead)?', 'Arpeggio', 'BalloonTextItem',
+ 'Bar(Line|Number)?', 'BassFigure(Alignment(Positioning)?|Bracket|Continuation|Line)?',
+ 'Beam', 'BendAfter', 'Break(AlignGroup|Alignment)?', 'BreathingSign',
+ 'ChordName', 'Clef', 'Cluster(Spanner(Beacon)?)', 'CombineTextScript',
+ 'Cue(Clef|EndClef)?', 'Custos', 'Dot(Column|s)?',
+ 'Double(PercentRepeat(Counter)?|RepeatSlash)?',
+ 'Dynamic(LineSpanner|Text|TextSpanner)?\b', 'Episema', 'Fingering', 'Flag',
+ 'Footnote(Item|Spanner)', 'FretBoard', 'Glissando', 'GraceSpacing',
+ 'Grid(Line|Point)', 'Hairpin', 'HorizontalBracket',
+ 'Instrument(Name|Switch)', 'Key(Cancellation|Signature)',
+ 'Laissez(VibrerTie(Column)?)', 'LedgerLineSpanner',
+ 'LeftEdge', 'LigatureBracket',
+ 'Lyric(Extender|Hyphen|Space|Text)', 'MeasureGrouping',
+ 'MelodyItem', 'MensuralLigature', 'MetronomeMark',
+ 'MultiMeasureRest(Number|Text)?', 'NonMusicalPaperColumn',
+ 'Note(Collision|Column|Head|Name|Spacing)', 'OctavateEight',
+ 'OttavaBracket', 'PaperColumn', 'ParenthesesItem',
+ 'Percent(Repeat(Counter)?)', 'PhrasingSlur', 'PianoPedalBracket',
+ 'RehearsalMark', 'Repeat(Slash|Tie(Column)?)', 'Rest(Collision)?',
+ 'Script(Column|Row)?', 'Slur', 'Sostenuto(Pedal(LineSpanner)?)',
+ 'SpacingSpanner', 'SpanBar', 'Staff(Grouper|Spacing|Symbol)',
+ 'StanzaNumber', 'Stem(Tremolo)?', 'StringNumber', 'StrokeFinger',
+ 'SustainPedal(LineSpanner)?',
+ 'System(StartBar|StartBrace|StartBracket|StartSquare)?',
+ 'TabNoteHead', 'Text(Script|Spanner)', 'Tie(Column)?', 'TimeSignature',
+ 'TrillPitch(Accidental|Group|Head)', 'TrillSpanner',
+ 'Tuplet(Bracket|Number)', 'UnaCordaPedal(LineSpanner)?',
+ 'VaticanaLigature', 'Vertical(Alignment|AxisGroup)', 'VoiceFollower',
+ 'VoltaBracket(Spanner)?'
+
+# Context properties
+context_property = '\b[a-z]+([A-Z]+[a-z]+)+',
+ 'ottavation|output|stanza|timing|tonic'
+
+# Layout properties
+layout_property = '\b[a-z]+(-[a-z]+)+', 'indent'
+
+# All the other commands (including variables defined by users).
+# It must be at the end, otherwise the other \command definitions are overwritten.
+function = '\\[[:alpha:]-]+'
+
diff --git a/src/lilypond.style b/src/lilypond.style
new file mode 100644
index 0000000..bc9d407
--- /dev/null
+++ b/src/lilypond.style
@@ -0,0 +1,21 @@
+symbol "#C000C0" b ;
+cbracket, preproc black b ;
+dynamic "#FF8000" b ;
+
+string "#C20F0F" ;
+scheme, scheme_value "#A04900" ;
+comment gray i ;
+
+note_duration teal ;
+value "#808000" ;
+specialchar "#FF8000" ;
+
+function "#0000C0" b ;
+markup_command "#008000" ;
+lyric_command "#006000" b ;
+
+header_variable, variable blue ;
+context "#C000C0" b ;
+layout_object "#C000C0" ;
+context_property, layout_property blue ;
+
generated by cgit v1.2.3 (git 2.25.1) at 2025年10月02日 05:16:07 +0000

AltStyle によって変換されたページ (->オリジナル) /