62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
Language: Vala
 | 
						|
Author: Antono Vasiljev <antono.vasiljev@gmail.com>
 | 
						|
Description: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
 | 
						|
Website: https://wiki.gnome.org/Projects/Vala
 | 
						|
*/
 | 
						|
 | 
						|
function vala(hljs) {
 | 
						|
  return {
 | 
						|
    name: 'Vala',
 | 
						|
    keywords: {
 | 
						|
      keyword:
 | 
						|
        // Value types
 | 
						|
        'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +
 | 
						|
        'uint16 uint32 uint64 float double bool struct enum string void ' +
 | 
						|
        // Reference types
 | 
						|
        'weak unowned owned ' +
 | 
						|
        // Modifiers
 | 
						|
        'async signal static abstract interface override virtual delegate ' +
 | 
						|
        // Control Structures
 | 
						|
        'if while do for foreach else switch case break default return try catch ' +
 | 
						|
        // Visibility
 | 
						|
        'public private protected internal ' +
 | 
						|
        // Other
 | 
						|
        'using new this get set const stdout stdin stderr var',
 | 
						|
      built_in:
 | 
						|
        'DBus GLib CCode Gee Object Gtk Posix',
 | 
						|
      literal:
 | 
						|
        'false true null'
 | 
						|
    },
 | 
						|
    contains: [
 | 
						|
      {
 | 
						|
        className: 'class',
 | 
						|
        beginKeywords: 'class interface namespace',
 | 
						|
        end: /\{/,
 | 
						|
        excludeEnd: true,
 | 
						|
        illegal: '[^,:\\n\\s\\.]',
 | 
						|
        contains: [ hljs.UNDERSCORE_TITLE_MODE ]
 | 
						|
      },
 | 
						|
      hljs.C_LINE_COMMENT_MODE,
 | 
						|
      hljs.C_BLOCK_COMMENT_MODE,
 | 
						|
      {
 | 
						|
        className: 'string',
 | 
						|
        begin: '"""',
 | 
						|
        end: '"""',
 | 
						|
        relevance: 5
 | 
						|
      },
 | 
						|
      hljs.APOS_STRING_MODE,
 | 
						|
      hljs.QUOTE_STRING_MODE,
 | 
						|
      hljs.C_NUMBER_MODE,
 | 
						|
      {
 | 
						|
        className: 'meta',
 | 
						|
        begin: '^#',
 | 
						|
        end: '$',
 | 
						|
        relevance: 2
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
module.exports = vala;
 |