mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-31 02:17:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| Language: .properties
 | |
| Contributors: Valentin Aitken <valentin@nalisbg.com>, Egor Rogov <e.rogov@postgrespro.ru>
 | |
| Website: https://en.wikipedia.org/wiki/.properties
 | |
| Category: common, config
 | |
| */
 | |
| 
 | |
| export default function(hljs) {
 | |
| 
 | |
|   // whitespaces: space, tab, formfeed
 | |
|   var WS0 = '[ \\t\\f]*';
 | |
|   var WS1 = '[ \\t\\f]+';
 | |
|   // delimiter
 | |
|   var DELIM = '(' + WS0+'[:=]'+WS0+ '|' + WS1 + ')';
 | |
|   var KEY_ALPHANUM = '([^\\\\\\W:= \\t\\f\\n]|\\\\.)+';
 | |
|   var KEY_OTHER = '([^\\\\:= \\t\\f\\n]|\\\\.)+';
 | |
| 
 | |
|   var DELIM_AND_VALUE = {
 | |
|           // skip DELIM
 | |
|           end: DELIM,
 | |
|           relevance: 0,
 | |
|           starts: {
 | |
|             // value: everything until end of line (again, taking into account backslashes)
 | |
|             className: 'string',
 | |
|             end: /$/,
 | |
|             relevance: 0,
 | |
|             contains: [
 | |
|               { begin: '\\\\\\n' }
 | |
|             ]
 | |
|           }
 | |
|         };
 | |
| 
 | |
|   return {
 | |
|     name: '.properties',
 | |
|     case_insensitive: true,
 | |
|     illegal: /\S/,
 | |
|     contains: [
 | |
|       hljs.COMMENT('^\\s*[!#]', '$'),
 | |
|       // key: everything until whitespace or = or : (taking into account backslashes)
 | |
|       // case of a "normal" key
 | |
|       {
 | |
|         begin: KEY_ALPHANUM + DELIM,
 | |
|         returnBegin: true,
 | |
|         contains: [
 | |
|           {
 | |
|             className: 'attr',
 | |
|             begin: KEY_ALPHANUM,
 | |
|             endsParent: true,
 | |
|             relevance: 0
 | |
|           }
 | |
|         ],
 | |
|         starts: DELIM_AND_VALUE
 | |
|       },
 | |
|       // case of key containing non-alphanumeric chars => relevance = 0
 | |
|       {
 | |
|         begin: KEY_OTHER + DELIM,
 | |
|         returnBegin: true,
 | |
|         relevance: 0,
 | |
|         contains: [
 | |
|           {
 | |
|             className: 'meta',
 | |
|             begin: KEY_OTHER,
 | |
|             endsParent: true,
 | |
|             relevance: 0
 | |
|           }
 | |
|         ],
 | |
|         starts: DELIM_AND_VALUE
 | |
|       },
 | |
|       // case of an empty key
 | |
|       {
 | |
|         className: 'attr',
 | |
|         relevance: 0,
 | |
|         begin: KEY_OTHER + WS0 + '$'
 | |
|       }
 | |
|     ]
 | |
|   };
 | |
| }
 |