mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-11-03 20:07:33 +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 + '$'
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  };
 | 
						|
}
 |