├── setup.sh ├── README.md ├── Lua.ideplugin └── Contents │ ├── Info.plist │ └── Resources │ └── Lua.xcplugindata └── Lua.xclangspec /setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | plugins_dir=~/Library/Developer/Xcode/Plug-ins/ 4 | spec_dir=~/Library/Developer/Xcode/Specifications 5 | 6 | # Create Plug-ins directory if it doesn't exist 7 | if [ ! -d "$plugins_dir" ]; then 8 | mkdir $plugins_dir 9 | fi 10 | 11 | # Create Specifications directory if it doesn't exist 12 | if [ ! -d "$spec_dir" ]; then 13 | mkdir $spec_dir 14 | fi 15 | 16 | cp -r Lua.ideplugin $plugins_dir 17 | cp Lua.xclangspec $spec_dir 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lua-xclangspec 2 | 3 | This adds syntax highlighting for Lua source files to Xcode. Packaged for Xcode 9.2 from original repo at https://github.com/bastos/lua-xcode-coloring. 4 | 5 | ## Installation 6 | 7 | ### Setup script 8 | 9 | Run the following command in your terminal: 10 | 11 | ``` 12 | ./setup.sh 13 | ``` 14 | 15 | ### Manual installation 16 | 17 | Please note that if you are running Xcode 8 the `Plug-ins` and `Specifications` directories might not exist. 18 | 19 | - Copy the Lua.ideplugin` directory to `~/Library/Developer/Xcode/Plug-ins/`: 20 | 21 | ``` 22 | cp -r Lua.ideplugin ~/Library/Developer/Xcode/Plug-ins/ 23 | ``` 24 | - Copy the `Lua.xclangspec` file to `~/Library/Developer/Xcode/Specifications`: 25 | 26 | ``` 27 | cp Lua.xclangspec ~/Library/Developer/Xcode/Specifications/ 28 | ``` 29 | -------------------------------------------------------------------------------- /Lua.ideplugin/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleInfoDictionaryVersion 6 | 6.0 7 | CFBundleIdentifier 8 | com.highcaffeinecontent.xcode.lua 9 | CFBundleName 10 | Lua Xcode Plug-in 11 | CFBundleShortVersionString 12 | 1.0 13 | CFBundleVersion 14 | 1 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleSignature 18 | ???? 19 | CFBundleDevelopmentRegion 20 | English 21 | CFBundleSupportedPlatforms 22 | 23 | MacOSX 24 | 25 | DVTPlugInCompatibilityUUIDs 26 | 27 | 8A66E736-A720-4B3C-92F1-33D9962C69DF 28 | 65C57D32-1E9B-44B8-8C04-A27BA7AAE2C4 29 | DA4FDFD8-C509-4D8B-8B55-84A7B66AE701 30 | E0A62D1F-3C18-4D74-BFE5-A4167D643966 31 | DFFB3951-EB0A-4C09-9DAC-5F2D28CC839C 32 | CA351AD8-3176-41CB-875C-42A05C7CDEC7 33 | DF11C142-1584-4A99-87AC-1925D5F5652A 34 | 89CB8A86-8683-4928-AF66-11A6CE26A829 35 | C3998872-68CC-42C2-847C-B44D96AB2691 36 | B395D63E-9166-4CD6-9287-6889D507AD6A 37 | 38 | XCPluginHasUI 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Lua.ideplugin/Contents/Resources/Lua.xcplugindata: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | plug-in 6 | 7 | extensions 8 | 9 | Xcode.FileDataType.Lua 10 | 11 | id 12 | Xcode.FileDataType.Lua 13 | localizedDescription 14 | Lua Query Document 15 | name 16 | File type for Lua 17 | point 18 | Xcode.FileDataType 19 | typeConformedTo 20 | 21 | 22 | typeIdentifier 23 | public.source-code 24 | 25 | 26 | typeIdentifier 27 | public.lua-source 28 | version 29 | 1.0 30 | 31 | Xcode.FileDataTypeDetector.Lua 32 | 33 | detectedTypeIdentifier 34 | public.lua-source 35 | id 36 | Xcode.FileDataTypeDetector.Lua 37 | matchesExtension 38 | lua 39 | point 40 | Xcode.FileDataTypeDetector 41 | 42 | Xcode.SourceCodeLanguage.Lua 43 | 44 | commentSyntax 45 | 46 | 47 | prefix 48 | # 49 | 50 | 51 | conformsTo 52 | 53 | 54 | identifier 55 | Xcode.SourceCodeLanguage.Generic 56 | 57 | 58 | fileDataType 59 | 60 | 61 | identifier 62 | public.lua-source 63 | 64 | 65 | id 66 | Xcode.SourceCodeLanguage.Lua 67 | languageName 68 | Lua 69 | languageSpecification 70 | xcode.lang.lua 71 | name 72 | Lua Language 73 | point 74 | Xcode.SourceCodeLanguage 75 | version 76 | 1.0 77 | 78 | Xcode.IDEKit.Inspector.FileIdentityAndType.public.lua-source 79 | 80 | fileDataType 81 | public.lua-source 82 | group 83 | Xcode.IDEKit.Inspector.FileInspectorTypeGroup.Sourcecode.Various 84 | id 85 | Xcode.IDEKit.Inspector.FileIdentityAndType.public.lua-source 86 | name 87 | File Inspector Entry - Lua Document 88 | point 89 | Xcode.IDEKit.FileInspectorTypeGroupEntry 90 | version 91 | 0.1 92 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /Lua.xclangspec: -------------------------------------------------------------------------------- 1 | // Lua 2 | // Lua.xclangspec v3.0.1 3 | 4 | // Lua language specification for Xcode 1.5. */ 5 | 6 | // Bret Victor, 4/24/2005 7 | 8 | // Based on SubEthaEdit's Lua mode, and the built-in Xcode language specs at: 9 | // /System/Library/PrivateFrameworks/DevToolsCore.framework/Versions/A/Resources/Built-in languages.pblangspec 10 | 11 | // Up dated to Lua 5.1 syntax by Graham Henstridge, 24/10/2006 and confirmed 12 | // operational with Xcode 2.4. 13 | 14 | // Updated 1/12/07 to Xcode3 by Graham Henstridge, with a little help from 15 | // David Ewing at Apple 16 | // Uses the new .xclangspec format, the definition of which is not available, 17 | // however using various files at: 18 | // /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/ 19 | // assists in understanding the language. 20 | 21 | // Place this file Lua.xclangspec and Lua.pbfilespec in directory: 22 | // ~/Library/Application Support/Developer/Shared/Xcode/Specifications/ 23 | 24 | ( 25 | 26 | /****************************************************************************/ 27 | // MARK: Lua keywords 28 | /****************************************************************************/ 29 | { 30 | Identifier = "xcode.lang.lua.identifier"; 31 | Syntax = { 32 | StartChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_["; 33 | Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_?[]"; 34 | Words = ( 35 | "and", 36 | "break", 37 | "do", 38 | "else", 39 | "elseif", 40 | "end", 41 | "for", 42 | "function", 43 | "if", 44 | "in", 45 | "local", 46 | "not", 47 | "or", 48 | "repeat", 49 | "return", 50 | "then", 51 | "until", 52 | "while", 53 | 54 | "assert", 55 | "collectgarbage", 56 | "dofile", 57 | "error", 58 | "getfenv", 59 | "getmetatable", 60 | "ipairs", 61 | "load", 62 | "loadfile", 63 | "loadstring", 64 | "module", 65 | "next", 66 | "pairs", 67 | "pcall", 68 | "print", 69 | "rawequal", 70 | "rawget", 71 | "rawset", 72 | "require", 73 | "select", 74 | "setfenv", 75 | "setmetatable", 76 | "tonumber", 77 | "tostring", 78 | "type", 79 | "unpack", 80 | "xpcall", 81 | "_G", 82 | "_VERSION", 83 | 84 | // there is now probably a better way of highlighting the following 85 | 86 | "__add", 87 | "__concat", 88 | "__div", 89 | "__eq", 90 | "__gc", 91 | "__index", 92 | "__le", 93 | "__lt", 94 | "__metatable", 95 | "__mode", 96 | "__mul", 97 | "__newindex", 98 | "__pow", 99 | "__sub", 100 | "__tostring", 101 | "__unm", 102 | 103 | "package", 104 | "package.cpath", 105 | "package.loaded", 106 | "package.loadlib", 107 | "package.path", 108 | "package.preload", 109 | "package.seeall", 110 | 111 | "coroutine", 112 | "coroutine.create", 113 | "coroutine.resume", 114 | "coroutine.running", 115 | "coroutine.status", 116 | "coroutine.wrap", 117 | "coroutine.yield", 118 | 119 | "string", 120 | "string.byte", 121 | "string.char", 122 | "string.dump", 123 | "string.find", 124 | "string.format", 125 | "string.gmatch", 126 | "string.gsub", 127 | "string.len", 128 | "string.lower", 129 | "string.match", 130 | "string.rep", 131 | "string.sub", 132 | "string.upper", 133 | 134 | "table", 135 | "table.concat", 136 | "table.insert", 137 | "table.maxn", 138 | "table.remove", 139 | "table.sort", 140 | 141 | "math", 142 | "math.abs", 143 | "math.acos", 144 | "math.asin", 145 | "math.atan", 146 | "math.atan2", 147 | "math.ceil", 148 | "math.cos", 149 | "math.cosh", 150 | "math.deg", 151 | "math.exp", 152 | "math.floor", 153 | "math.fmod", 154 | "math.frexp", 155 | "math.huge", 156 | "math.ldexp", 157 | "math.log", 158 | "math.log10", 159 | "math.max", 160 | "math.min", 161 | "math.modf", 162 | "math.pi", 163 | "math.pow", 164 | "math.rad", 165 | "math.random", 166 | "math.randomseed", 167 | "math.sin", 168 | "math.sinh", 169 | "math.sqrt", 170 | "math.tan", 171 | "math.tanh", 172 | 173 | "io", 174 | "io.close", 175 | "io.flush", 176 | "io.input", 177 | "io.lines", 178 | "io.open", 179 | "io.popen", 180 | "io.output", 181 | "io.read", 182 | "io.tmpfile", 183 | "io.type", 184 | "io.write", 185 | 186 | "file:close", 187 | "file:flush", 188 | "file:lines", 189 | "file:read", 190 | "file:seek", 191 | "file:setvbuf", 192 | "file:write", 193 | 194 | "os", 195 | "os.clock", 196 | "os.date", 197 | "os.difftime", 198 | "os.execute", 199 | "os.exit", 200 | "os.getenv", 201 | "os.remove", 202 | "os.rename", 203 | "os.setlocale", 204 | "os.time", 205 | "os.tmpname", 206 | 207 | "debug", 208 | "debug.debug", 209 | "debug.getfenv", 210 | "debug.gethook", 211 | "debug.getinfo", 212 | "debug.getlocal", 213 | "debug.getmetatable", 214 | "debug.getregistry", 215 | "debug.getupvalue", 216 | "debug.setfenv", 217 | "debug.sethook", 218 | "debug.setlocal", 219 | "debug.setmetatable", 220 | "debug.setupvalue", 221 | "debug.traceback", 222 | ); 223 | Type = "xcode.syntax.keyword"; 224 | AltType = "xcode.syntax.identifier"; // non-keywords are identifiers 225 | }; 226 | }, 227 | 228 | { 229 | Identifier = "xcode.lang.lau.interestingOperators"; 230 | Syntax = { 231 | Words = ( 232 | "..", 233 | ".", 234 | ":", 235 | ); 236 | Type = "xcode.syntax.plain"; 237 | }; 238 | }, 239 | 240 | 241 | 242 | /****************************************************************************/ 243 | // MARK: Lua Syntax Coloring 244 | /****************************************************************************/ 245 | 246 | { 247 | Identifier = "xcode.lang.lua"; 248 | Description = "Lua Coloring"; 249 | BasedOn = "xcode.lang.simpleColoring"; 250 | IncludeInMenu = YES; 251 | Name = "Lua"; 252 | Syntax = { 253 | Tokenizer = "xcode.lang.lua.lexer.toplevel"; 254 | IncludeRules = ( 255 | "xcode.lang.lua.module", 256 | "xcode.lang.lua.class", 257 | "xcode.lang.lua.function", 258 | "xcode.lang.lua.block", 259 | "xcode.lang.lua.block.if", 260 | "xcode.lang.lua.block.while", 261 | "xcode.lang.lua.block.repeat", 262 | "xcode.lang.lua.block.for", 263 | "xcode.lang.lua.bracketexpr", 264 | "xcode.lang.lua.parenexpr", 265 | ); 266 | Type = "xcode.syntax.plain"; 267 | }; 268 | }, 269 | 270 | // The following rule returns tokens to the other rules 271 | { 272 | Identifier = "xcode.lang.lua.lexer"; 273 | Syntax = { 274 | IncludeRules = ( 275 | "xcode.lang.lua.comment", 276 | "xcode.lang.lua.comment.singleline", 277 | "xcode.lang.string", 278 | "xcode.lang.string.lua0", 279 | "xcode.lang.string.lua1", 280 | "xcode.lang.string.lua2", 281 | "xcode.lang.string.lua3", 282 | "xcode.lang.string.lua4", 283 | "xcode.lang.string.lua5", 284 | "xcode.lang.character", 285 | "xcode.lang.lua.identifier", 286 | "xcode.lang.number", 287 | "xcode.lang.lau.interestingOperators", 288 | ); 289 | }; 290 | }, 291 | 292 | { 293 | Identifier = "xcode.lang.lua.lexer.toplevel"; 294 | Syntax = { 295 | IncludeRules = ( 296 | "xcode.lang.lua.comment", 297 | "xcode.lang.lua.comment.singleline", 298 | "xcode.lang.string", 299 | "xcode.lang.string.lua0", 300 | "xcode.lang.string.lua1", 301 | "xcode.lang.string.lua2", 302 | "xcode.lang.string.lua3", 303 | "xcode.lang.string.lua4", 304 | "xcode.lang.string.lua5", 305 | "xcode.lang.character", 306 | "xcode.lang.lua.module.declarator", 307 | "xcode.lang.lua.class.declarator", 308 | "xcode.lang.lua.function.declarator", 309 | "xcode.lang.lua.identifier", 310 | "xcode.lang.number", 311 | ); 312 | }; 313 | }, 314 | 315 | { 316 | Identifier = "xcode.lang.string.lua0"; 317 | Syntax = { 318 | Start = "[["; 319 | End = "]]"; 320 | Type = "xcode.syntax.string"; 321 | }; 322 | }, 323 | 324 | { 325 | Identifier = "xcode.lang.string.lua1"; 326 | Syntax = { 327 | Start = "[=["; 328 | End = "]=]"; 329 | Type = "xcode.syntax.string"; 330 | }; 331 | }, 332 | 333 | { 334 | Identifier = "xcode.lang.string.lua2"; 335 | Syntax = { 336 | Start = "[==["; 337 | End = "]==]"; 338 | Type = "xcode.syntax.string"; 339 | }; 340 | }, 341 | 342 | { 343 | Identifier = "xcode.lang.string.lua3"; 344 | Syntax = { 345 | Start = "[===["; 346 | End = "]===]"; 347 | Type = "xcode.syntax.string"; 348 | }; 349 | }, 350 | 351 | { 352 | Identifier = "xcode.lang.string.lua4"; 353 | Syntax = { 354 | Start = "[====["; 355 | End = "]====]"; 356 | Type = "xcode.syntax.string"; 357 | }; 358 | }, 359 | 360 | { 361 | Identifier = "xcode.lang.string.lua5"; 362 | Syntax = { 363 | Start = "[=====["; 364 | End = "]=====]"; 365 | Type = "xcode.syntax.string"; 366 | }; 367 | }, 368 | 369 | { 370 | Identifier = "xcode.lang.lua.module"; 371 | Syntax = { 372 | Tokenizer = "xcode.lang.lua.lexer.toplevel"; 373 | Start = "xcode.lang.lua.module.declarator"; 374 | End = "end"; 375 | Foldable = YES; 376 | Recursive = YES; 377 | IncludeRules = ( 378 | "xcode.lang.lua.class", 379 | "xcode.lang.lua.function", 380 | ); 381 | Type = "xcode.syntax.definition.class"; 382 | }; 383 | }, 384 | 385 | { 386 | Identifier = "xcode.lang.lua.module.declarator"; 387 | Syntax = { 388 | Tokenizer = "xcode.lang.lua.lexer"; 389 | Rules = ( 390 | "require", 391 | "xcode.lang.lua.identifier", 392 | ); 393 | Type = "xcode.syntax.name.partial"; 394 | }; 395 | }, 396 | 397 | { 398 | Identifier = "xcode.lang.lua.class"; 399 | Syntax = { 400 | Tokenizer = "xcode.lang.lua.lexer.toplevel"; 401 | Start = "xcode.lang.lua.class.declarator"; 402 | End = "end"; 403 | Foldable = YES; 404 | Recursive = YES; 405 | IncludeRules = ( 406 | "xcode.lang.lua.function", 407 | ); 408 | Type = "xcode.syntax.definition.class"; 409 | }; 410 | }, 411 | 412 | { 413 | Identifier = "xcode.lang.lua.class.declarator"; 414 | Syntax = { 415 | Tokenizer = "xcode.lang.lua.lexer"; 416 | Rules = ( 417 | "class", 418 | "xcode.lang.lua.identifier", 419 | "xcode.lang.lua.superclass?" 420 | ); 421 | Type = "xcode.syntax.name.partial"; 422 | }; 423 | }, 424 | 425 | { 426 | Identifier = "xcode.lang.lua.superclass"; 427 | Syntax = { 428 | Tokenizer = "xcode.lang.lua.lexer"; 429 | Rules = ( 430 | "->", 431 | "xcode.lang.lua.identifier", 432 | ); 433 | }; 434 | }, 435 | 436 | { 437 | Identifier = "xcode.lang.lua.function"; 438 | Syntax = { 439 | Tokenizer = "xcode.lang.lua.lexer.toplevel"; 440 | Start = "xcode.lang.lua.function.declarator"; 441 | End = "end"; 442 | Foldable = YES; 443 | Recursive = YES; 444 | IncludeRules = ( 445 | "xcode.lang.lua.block", 446 | "xcode.lang.lua.block.if", 447 | "xcode.lang.lua.block.while", 448 | "xcode.lang.lua.block.repeat", 449 | "xcode.lang.lua.block.for", 450 | "xcode.lang.lua.bracketexpr", 451 | "xcode.lang.lua.parenexpr", 452 | ); 453 | Type = "xcode.syntax.definition.function"; 454 | }; 455 | }, 456 | 457 | { 458 | Identifier = "xcode.lang.lua.function.declarator"; 459 | Syntax = { 460 | Tokenizer = "xcode.lang.lua.lexer"; 461 | Rules = ( 462 | "function", 463 | "xcode.lang.lua.function.name", 464 | ); 465 | }; 466 | }, 467 | 468 | { 469 | Identifier = "xcode.lang.lua.function.name"; 470 | Syntax = { 471 | Tokenizer = "xcode.lang.lua.lexer"; 472 | Rules = ( 473 | "xcode.lang.lua.identifier", 474 | "xcode.lang.lua.function.name.more?", 475 | ); 476 | Type = "xcode.syntax.name.partial"; 477 | }; 478 | }, 479 | 480 | { 481 | Identifier = "xcode.lang.lua.function.name.more"; 482 | Syntax = { 483 | Tokenizer = "xcode.lang.lua.lexer"; 484 | Rules = ( 485 | ".", 486 | "xcode.lang.lua.identifier", 487 | ); 488 | Type = "xcode.syntax.name.partial"; 489 | }; 490 | }, 491 | 492 | 493 | /****************************************************************************/ 494 | // MARK: Lua blocks 495 | /****************************************************************************/ 496 | { 497 | Identifier = "xcode.lang.lua.block"; 498 | Syntax = { 499 | Tokenizer = "xcode.lang.lua.lexer"; 500 | Start = "{"; 501 | End = "}"; 502 | Foldable = YES; 503 | Recursive = YES; 504 | IncludeRules = ( 505 | "xcode.lang.lua.block.if", 506 | "xcode.lang.lua.block.while", 507 | "xcode.lang.lua.block.repeat", 508 | "xcode.lang.lua.block.for", 509 | "xcode.lang.lua.bracketexpr", 510 | "xcode.lang.lua.parenexpr", 511 | ); 512 | }; 513 | }, 514 | 515 | { 516 | Identifier = "xcode.lang.lua.block.if"; 517 | Syntax = { 518 | Tokenizer = "xcode.lang.lua.lexer"; 519 | Start = "if"; 520 | End = "end"; 521 | Foldable = YES; 522 | Recursive = YES; 523 | StartAtBOL = YES; 524 | IncludeRules = ( 525 | "xcode.lang.lua.block", 526 | "xcode.lang.lua.block.while", 527 | "xcode.lang.lua.block.repeat", 528 | "xcode.lang.lua.block.for", 529 | "xcode.lang.lua.bracketexpr", 530 | "xcode.lang.lua.parenexpr", 531 | ); 532 | }; 533 | }, 534 | 535 | { 536 | Identifier = "xcode.lang.lua.block.while"; 537 | Syntax = { 538 | Tokenizer = "xcode.lang.lua.lexer"; 539 | Start = "while"; 540 | End = "end"; 541 | Foldable = YES; 542 | Recursive = YES; 543 | StartAtBOL = YES; 544 | IncludeRules = ( 545 | "xcode.lang.lua.block", 546 | "xcode.lang.lua.block.if", 547 | "xcode.lang.lua.block.repeat", 548 | "xcode.lang.lua.block.for", 549 | "xcode.lang.lua.bracketexpr", 550 | "xcode.lang.lua.parenexpr", 551 | ); 552 | }; 553 | }, 554 | 555 | { 556 | Identifier = "xcode.lang.lua.block.repeat"; 557 | Syntax = { 558 | Tokenizer = "xcode.lang.lua.lexer"; 559 | Start = "repeat"; 560 | End = "until"; 561 | Foldable = YES; 562 | Recursive = YES; 563 | StartAtBOL = YES; 564 | IncludeRules = ( 565 | "xcode.lang.lua.block", 566 | "xcode.lang.lua.block.if", 567 | "xcode.lang.lua.block.while", 568 | "xcode.lang.lua.block.for", 569 | "xcode.lang.lua.bracketexpr", 570 | "xcode.lang.lua.parenexpr", 571 | ); 572 | }; 573 | }, 574 | 575 | { 576 | Identifier = "xcode.lang.lua.block.for"; 577 | Syntax = { 578 | Tokenizer = "xcode.lang.lua.lexer"; 579 | Start = "for"; 580 | End = "end"; 581 | Foldable = YES; 582 | Recursive = YES; 583 | StartAtBOL = YES; 584 | IncludeRules = ( 585 | "xcode.lang.lua.block", 586 | "xcode.lang.lua.block.if", 587 | "xcode.lang.lua.block.while", 588 | "xcode.lang.lua.block.repeat", 589 | "xcode.lang.lua.bracketexpr", 590 | "xcode.lang.lua.parenexpr", 591 | ); 592 | }; 593 | }, 594 | 595 | { 596 | Identifier = "xcode.lang.lua.parenexpr"; 597 | Syntax = { 598 | Tokenizer = "xcode.lang.lua.lexer"; 599 | Start = "("; 600 | End = ")"; 601 | Recursive = YES; 602 | IncludeRules = ( 603 | "xcode.lang.lua.bracketexpr", 604 | ); 605 | }; 606 | }, 607 | 608 | { 609 | Identifier = "xcode.lang.lua.bracketexpr"; 610 | Syntax = { 611 | Tokenizer = "xcode.lang.lua.lexer"; 612 | Start = "["; 613 | End = "]"; 614 | Recursive = YES; 615 | IncludeRules = ( 616 | "xcode.lang.lua.parenexpr", 617 | ); 618 | }; 619 | }, 620 | 621 | { 622 | Identifier = "xcode.lang.lua.comment"; 623 | Syntax = { 624 | Start = "--[["; 625 | End = "]]"; 626 | Foldable = YES; 627 | IncludeRules = ( 628 | "xcode.lang.url", 629 | "xcode.lang.url.mail", 630 | "xcode.lang.comment.mark" 631 | ); 632 | Type = "xcode.syntax.comment"; 633 | }; 634 | }, 635 | 636 | { 637 | Identifier = "xcode.lang.lua.comment.singleline"; 638 | Syntax = { 639 | Start = "--"; 640 | End = "\n"; 641 | IncludeRules = ( 642 | "xcode.lang.url", 643 | "xcode.lang.url.mail", 644 | "xcode.lang.comment.mark" 645 | ); 646 | Type = "xcode.syntax.comment"; 647 | }; 648 | }, 649 | { 650 | Identifier = "xcode.lang.lua.comment1"; 651 | Syntax = { 652 | Start = "--[=["; 653 | End = "]=]"; 654 | Foldable = YES; 655 | IncludeRules = ( 656 | "xcode.lang.url", 657 | "xcode.lang.url.mail", 658 | "xcode.lang.comment.mark" 659 | ); 660 | Type = "xcode.syntax.comment"; 661 | }; 662 | }, 663 | 664 | ) 665 | --------------------------------------------------------------------------------