2023-01-16 22:26:34 +00:00
ace . define ( "ace/mode/ini_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/text_highlight_rules" ] , function ( require , exports , module ) { /* This file was autogenerated from tool\tm bundles\ini.tmbundle\Syntaxes\Ini.plist (uuid: ) */
2014-07-08 20:15:22 +00:00
"use strict" ;
2013-12-30 15:00:16 +00:00
var oop = require ( "../lib/oop" ) ;
var TextHighlightRules = require ( "./text_highlight_rules" ) . TextHighlightRules ;
var escapeRe = "\\\\(?:[\\\\0abtrn;#=:]|x[a-fA-F\\d]{4})" ;
2023-01-16 22:26:34 +00:00
var IniHighlightRules = function ( ) {
2013-12-30 15:00:16 +00:00
this . $rules = {
start : [ {
2023-01-16 22:26:34 +00:00
token : 'punctuation.definition.comment.ini' ,
regex : '#.*' ,
push _ : [ {
token : 'comment.line.number-sign.ini' ,
regex : '$|^' ,
next : 'pop'
} , {
defaultToken : 'comment.line.number-sign.ini'
} ]
2013-12-30 15:00:16 +00:00
} , {
2023-01-16 22:26:34 +00:00
token : 'punctuation.definition.comment.ini' ,
regex : ';.*' ,
push _ : [ {
token : 'comment.line.semicolon.ini' ,
regex : '$|^' ,
next : 'pop'
} , {
defaultToken : 'comment.line.semicolon.ini'
} ]
2013-12-30 15:00:16 +00:00
} , {
2023-01-16 22:26:34 +00:00
token : [ 'keyword.other.definition.ini' , 'text' , 'punctuation.separator.key-value.ini' ] ,
regex : '\\b([a-zA-Z0-9_.-]+)\\b(\\s*)(=)'
2013-12-30 15:00:16 +00:00
} , {
2023-01-16 22:26:34 +00:00
token : [ 'punctuation.definition.entity.ini' , 'constant.section.group-title.ini' , 'punctuation.definition.entity.ini' ] ,
regex : '^(\\[)(.*?)(\\])'
2013-12-30 15:00:16 +00:00
} , {
2023-01-16 22:26:34 +00:00
token : 'punctuation.definition.string.begin.ini' ,
regex : "'" ,
push : [ {
token : 'punctuation.definition.string.end.ini' ,
regex : "'" ,
next : 'pop'
} , {
token : "constant.language.escape" ,
regex : escapeRe
} , {
defaultToken : 'string.quoted.single.ini'
} ]
2013-12-30 15:00:16 +00:00
} , {
2023-01-16 22:26:34 +00:00
token : 'punctuation.definition.string.begin.ini' ,
2013-12-30 15:00:16 +00:00
regex : '"' ,
2023-01-16 22:26:34 +00:00
push : [ {
token : "constant.language.escape" ,
regex : escapeRe
} , {
token : 'punctuation.definition.string.end.ini' ,
regex : '"' ,
next : 'pop'
} , {
defaultToken : 'string.quoted.double.ini'
} ]
2013-12-30 15:00:16 +00:00
} ]
} ;
this . normalizeRules ( ) ;
} ;
IniHighlightRules . metaData = {
fileTypes : [ 'ini' , 'conf' ] ,
keyEquivalent : '^~I' ,
name : 'Ini' ,
scopeName : 'source.ini'
} ;
oop . inherits ( IniHighlightRules , TextHighlightRules ) ;
exports . IniHighlightRules = IniHighlightRules ;
2023-01-16 22:26:34 +00:00
} ) ;
2013-12-30 15:00:16 +00:00
2023-01-16 22:26:34 +00:00
ace . define ( "ace/mode/folding/ini" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/range" , "ace/mode/folding/fold_mode" ] , function ( require , exports , module ) { "use strict" ;
2013-12-30 15:00:16 +00:00
var oop = require ( "../../lib/oop" ) ;
var Range = require ( "../../range" ) . Range ;
var BaseFoldMode = require ( "./fold_mode" ) . FoldMode ;
2023-01-16 22:26:34 +00:00
var FoldMode = exports . FoldMode = function ( ) {
2013-12-30 15:00:16 +00:00
} ;
oop . inherits ( FoldMode , BaseFoldMode ) ;
2023-01-16 22:26:34 +00:00
( function ( ) {
2013-12-30 15:00:16 +00:00
this . foldingStartMarker = /^\s*\[([^\])]*)]\s*(?:$|[;#])/ ;
2023-01-16 22:26:34 +00:00
this . getFoldWidgetRange = function ( session , foldStyle , row ) {
2013-12-30 15:00:16 +00:00
var re = this . foldingStartMarker ;
var line = session . getLine ( row ) ;
var m = line . match ( re ) ;
2023-01-16 22:26:34 +00:00
if ( ! m )
return ;
2013-12-30 15:00:16 +00:00
var startName = m [ 1 ] + "." ;
var startColumn = line . length ;
var maxRow = session . getLength ( ) ;
var startRow = row ;
var endRow = row ;
while ( ++ row < maxRow ) {
line = session . getLine ( row ) ;
if ( /^\s*$/ . test ( line ) )
continue ;
m = line . match ( re ) ;
if ( m && m [ 1 ] . lastIndexOf ( startName , 0 ) !== 0 )
break ;
endRow = row ;
}
if ( endRow > startRow ) {
var endColumn = session . getLine ( endRow ) . length ;
return new Range ( startRow , startColumn , endRow , endColumn ) ;
}
} ;
} ) . call ( FoldMode . prototype ) ;
} ) ;
2014-07-08 20:15:22 +00:00
2023-01-16 22:26:34 +00:00
ace . define ( "ace/mode/ini" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/text" , "ace/mode/ini_highlight_rules" , "ace/mode/folding/ini" ] , function ( require , exports , module ) { "use strict" ;
2014-07-08 20:15:22 +00:00
var oop = require ( "../lib/oop" ) ;
var TextMode = require ( "./text" ) . Mode ;
var IniHighlightRules = require ( "./ini_highlight_rules" ) . IniHighlightRules ;
var FoldMode = require ( "./folding/ini" ) . FoldMode ;
2023-01-16 22:26:34 +00:00
var Mode = function ( ) {
2014-07-08 20:15:22 +00:00
this . HighlightRules = IniHighlightRules ;
this . foldingRules = new FoldMode ( ) ;
2017-02-05 20:05:00 +00:00
this . $behaviour = this . $defaultBehaviour ;
2014-07-08 20:15:22 +00:00
} ;
oop . inherits ( Mode , TextMode ) ;
2023-01-16 22:26:34 +00:00
( function ( ) {
2014-07-08 20:15:22 +00:00
this . lineCommentStart = ";" ;
2015-11-19 16:37:40 +00:00
this . blockComment = null ;
2014-07-08 20:15:22 +00:00
this . $id = "ace/mode/ini" ;
} ) . call ( Mode . prototype ) ;
exports . Mode = Mode ;
2023-01-16 22:26:34 +00:00
2020-04-14 12:14:48 +00:00
} ) ; ( function ( ) {
ace . require ( [ "ace/mode/ini" ] , function ( m ) {
if ( typeof module == "object" && typeof exports == "object" && module ) {
module . exports = m ;
}
} ) ;
} ) ( ) ;