Advertisement
Guest User

javascript.liclipse

a guest
Sep 16th, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. scope_to_color_name: {
  2.   singleQuotedString: string,
  3.   doubleQuotedString: string,
  4.   default: foreground,
  5.   class: foreground
  6. }
  7. scope_definition_rules:
  8.   - {type: EndOfLineRule, scope: singleLineComment, start: //}
  9.   - {type: MultiLineRule, scope: multiLineComment, start: /*, end: '*/', escapeCharacter: '\0'}
  10.   - {type: SingleLineRule, scope: singleQuotedString, sequence: '''', escapeCharacter: \, escapeContinuesLine: true}
  11.   - {type: SingleLineRule, scope: doubleQuotedString, sequence: '"', escapeCharacter: \, escapeContinuesLine: true}
  12. scope:
  13.  default:
  14.    keyword: [abstract, break, byte, case, catch, char, class, const, continue, default,
  15.      delete, do, double, else, export, extends, 'false', final, finally, float, for, from, function,
  16.      goto, if, implements, import, in, instanceof, int, interface, let, long, native,
  17.      'null', package, private, protected, public, reset, return, short, static, super,
  18.      switch, synchronized, this, throw, transient, 'true', try, var, void, while,
  19.      with]
  20.    bracket: [(, '{', '[', ']', '}', )]
  21.    operator: ['!', $, '%', '&', '*', +, '-', //, /, ':', <, '=', '>', '?', ^, '|',
  22.      '~', is, new, sizeof, typeof, unchecked, ',', ;]
  23.  
  24.    sub_rules: [
  25.      {type: CompositeRule, sub_rules: [
  26.        { type: SequenceRule, scope: keyword, sequence: 'class'}, #Define that 'class' is a keyword
  27.        { type: OneOrMoreSpacesRule, scope: default},
  28.        { type: AnyWordRule, scope: class }] #And any name after 'class' is the class we matched (we'll put it in the outline defining [default, class]).
  29.      },
  30.    
  31.      # Match function name 1: function a
  32.      {type: CompositeRule, sub_rules: [
  33.        { type: SequenceRule, scope: keyword, sequence: 'function'},
  34.        { type: OneOrMoreSpacesRule, scope: default},
  35.        { type: AnyWordRule, scope: method }]
  36.      },
  37.  
  38.      # Match function name 2: x = function
  39.      {type: CompositeRule, sub_rules: [
  40.        { type: AnyWordRule, scope: method },
  41.        { type: ZeroOrMoreSpacesRule, scope: default},
  42.        { type: SequenceRule, scope: operator, sequence: '='},
  43.        { type: ZeroOrMoreSpacesRule, scope: default},
  44.        { type: SequenceRule, scope: keyword, sequence: 'function'}]
  45.      },
  46.      # Match function name 3: x = () =>
  47.      {type: CompositeRule, sub_rules: [
  48.        { type: AnyWordRule, scope: method },
  49.        { type: ZeroOrMoreSpacesRule, scope: default},
  50.        { type: SequenceRule, scope: operator, sequence: '='},
  51.        { type: ZeroOrMoreSpacesRule, scope: OFF_PARTITION},
  52.        { type: MultiLineRule, scope: OFF_PARTITION, start: '(', end: ')', escapeCharacter: \0},
  53.        { type: ZeroOrMoreSpacesRule, scope: OFF_PARTITION},
  54.        { type: SequenceRule, scope: OFF_PARTITION, sequence: '=>'}
  55.        ]
  56.      },
  57.      # Match function name 4 (inside a class): x() {}
  58.      {type: CompositeRule, sub_rules: [
  59.        { type: AnyWordRule, scope: method, except: ['function'] },
  60.        { type: ZeroOrMoreSpacesRule, scope: OFF_PARTITION},
  61.        { type: MultiLineRule, scope: OFF_PARTITION, start: '(', end: ')', escapeCharacter: \0},
  62.        { type: ZeroOrMoreSpacesRule, scope: OFF_PARTITION},
  63.        { type: SequenceRule, scope: OFF_PARTITION, sequence: '{'},
  64.        ]
  65.      },
  66.    ]
  67.  
  68. file_extensions: [js]
  69.  
  70. filename: []
  71.  
  72.  
  73. name: Javascript
  74.  
  75. outline:
  76.  - {type: Scope, scope: [default, class], define: class}
  77.  - {type: Scope, scope: [default, method], define: method}
  78.  - {type: Regexp, scope: [singleLineComment], regexp: '//---.*', define: comment, group: 0}
  79.  
  80. indent: {
  81.  type: braces, #Braces are used for indenting in Javascript
  82.  scope: default, #Only braces found in the default scope are considered
  83.  outline_scopes: [class, method], #Scopes are created where the outline defines a method.
  84. }
  85.  
  86. auto_edit:
  87.  - {auto_close_scopes: [singleQuotedString, doubleQuotedString], scope: default} #To work, the scopes must be: SingleLineRule(sequence used for start/end)
  88.  - {auto_close_parens: ['(', '[', '{'], scope: default} #Will close the parens if it's not properly balanced
  89.  - {auto_skip_parens: [')', ']', '}'], scope: default} #Will skip the close parens if it's properly balanced
  90.  
  91. comment: {type: singleLine, sequence: '//'}
  92.  
  93. templates:
  94. - name: function
  95.  description: "anonymous function"
  96.  pattern: "function (${arguments}) {\n\t${cursor}\n}"
  97.  
  98. - name: function
  99.  description: "named function"
  100.  pattern: "function ${func}(${arguments}) {\n\t${cursor}\n}"
  101.  
  102. - name: for
  103.  description: "for (high-performance)"
  104.  pattern: |-
  105.    for(var ${i}=0,${len}=${arr}.length; ${i}<${len}; ${i}++){
  106.        var ${obj} = ${arr}[${i}];
  107.        ${cursor}
  108.    }
  109.  
  110. - name: class
  111.  description: "ES6 class"
  112.  pattern: |-
  113.    class ${name} {
  114.      constructor() {
  115.        
  116.      }
  117.    }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement