├── info.plist ├── Preferences ├── Comments.tmPreferences └── Typing\Highlight Pairs.tmPreferences ├── README.mdown └── Syntaxes └── F Sharp.tmLanguage /info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | F Sharp 7 | uuid 8 | A29B280D-8D4C-4416-AC5A-97F50669603A 9 | 10 | 11 | -------------------------------------------------------------------------------- /Preferences/Comments.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | source.fsharp 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | (* 18 | 19 | 20 | name 21 | TM_COMMENT_END 22 | value 23 | *) 24 | 25 | 26 | 27 | uuid 28 | 7EB87AAB-3E82-44DC-BD69-4EE920E86C8F 29 | 30 | 31 | -------------------------------------------------------------------------------- /README.mdown: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you. 4 | 5 | # General 6 | 7 | * [Bundle Styleguide](http://kb.textmate.org/bundle_styleguide) — _before you make changes_ 8 | * [Commit Styleguide](http://kb.textmate.org/commit_styleguide) — _before you send a pull request_ 9 | * [Writing Bug Reports](http://kb.textmate.org/writing_bug_reports) — _before you report an issue_ 10 | 11 | # License 12 | 13 | If not otherwise specified (see below), files in this repository fall under the following license: 14 | 15 | Permission to copy, use, modify, sell and distribute this 16 | software is granted. This software is provided "as is" without 17 | express or implied warranty, and with no claim as to its 18 | suitability for any purpose. 19 | 20 | An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”. -------------------------------------------------------------------------------- /Preferences/Typing\Highlight Pairs.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Typing\Highlight Pairs 7 | scope 8 | source.fsharp 9 | settings 10 | 11 | highlightPairs 12 | 13 | 14 | ( 15 | ) 16 | 17 | 18 | [ 19 | ] 20 | 21 | 22 | { 23 | } 24 | 25 | 26 | smartTypingPairs 27 | 28 | 29 | ( 30 | ) 31 | 32 | 33 | [ 34 | ] 35 | 36 | 37 | { 38 | } 39 | 40 | 41 | " 42 | " 43 | 44 | 45 | 46 | uuid 47 | ED1D15E2-7A68-496C-A29A-4BB8C02B0476 48 | 49 | 50 | -------------------------------------------------------------------------------- /Syntaxes/F Sharp.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | fs 8 | 9 | foldingStartMarker 10 | 11 | foldingStopMarker 12 | 13 | keyEquivalent 14 | ^~F 15 | name 16 | F Sharp 17 | patterns 18 | 19 | 20 | include 21 | #comments 22 | 23 | 24 | include 25 | #constants 26 | 27 | 28 | include 29 | #structure 30 | 31 | 32 | include 33 | #strings 34 | 35 | 36 | include 37 | #let 38 | 39 | 40 | include 41 | #method_calls 42 | 43 | 44 | include 45 | #modules 46 | 47 | 48 | include 49 | #anonymous_functions 50 | 51 | 52 | include 53 | #keywords 54 | 55 | 56 | repository 57 | 58 | anonymous_functions 59 | 60 | patterns 61 | 62 | 63 | begin 64 | \b(fun)\b 65 | beginCaptures 66 | 67 | 1 68 | 69 | name 70 | storage.type.function.fsharp 71 | 72 | 73 | end 74 | (->) 75 | endCaptures 76 | 77 | 1 78 | 79 | name 80 | punctuation.separator.function-definition.fsharp 81 | 82 | 83 | name 84 | meta.function.anonymous 85 | patterns 86 | 87 | 88 | include 89 | #variables 90 | 91 | 92 | 93 | 94 | 95 | comments 96 | 97 | patterns 98 | 99 | 100 | begin 101 | \(\* 102 | beginCaptures 103 | 104 | 0 105 | 106 | name 107 | punctuation.definition.comment.begin.fsharp 108 | 109 | 110 | end 111 | \*\) 112 | endCaptures 113 | 114 | 0 115 | 116 | name 117 | punctuation.definition.comment.end.fsharp 118 | 119 | 120 | name 121 | comment.block.fsharp 122 | patterns 123 | 124 | 125 | include 126 | #comments 127 | 128 | 129 | 130 | 131 | 132 | constants 133 | 134 | patterns 135 | 136 | 137 | match 138 | \(\) 139 | name 140 | constant.language.unit.fsharp 141 | 142 | 143 | match 144 | \b-?[0-9][0-9_]*((\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*)) 145 | name 146 | constant.numeric.floating-point.fsharp 147 | 148 | 149 | match 150 | \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*))) 151 | name 152 | constant.numeric.integer.nativeint.fsharp 153 | 154 | 155 | 156 | keywords 157 | 158 | patterns 159 | 160 | 161 | match 162 | \b(new|in)\b 163 | name 164 | keyword.other.fsharp 165 | 166 | 167 | 168 | let 169 | 170 | patterns 171 | 172 | 173 | begin 174 | \b(let|and)(\s+rec)?(\s+[a-z]\w*)\b 175 | beginCaptures 176 | 177 | 1 178 | 179 | name 180 | keyword.other.binding.fsharp 181 | 182 | 2 183 | 184 | name 185 | keyword.other.function-recursive.fsharp 186 | 187 | 3 188 | 189 | name 190 | entity.name.type.binding.fsharp 191 | 192 | 193 | end 194 | = 195 | endCaptures 196 | 197 | 1 198 | 199 | name 200 | punctuation.separator.function.type-constraint.fsharp 201 | 202 | 203 | name 204 | meta.binding.fsharp 205 | patterns 206 | 207 | 208 | include 209 | #variables 210 | 211 | 212 | 213 | 214 | captures 215 | 216 | 1 217 | 218 | name 219 | keyword.other.binding.fsharp 220 | 221 | 3 222 | 223 | name 224 | constant.language.unit.fsharp 225 | 226 | 4 227 | 228 | name 229 | constant.language.ignored.fsharp 230 | 231 | 232 | match 233 | \b(let)\s+((\(\))|(_))\s+= 234 | name 235 | meta.expression.fsharp 236 | 237 | 238 | 239 | method_calls 240 | 241 | patterns 242 | 243 | 244 | applyEndPatternLast 245 | 1 246 | begin 247 | (?<!\w)([a-z]\w*)(\.) 248 | end 249 | (?=.) 250 | name 251 | meta.method-call.fsharp 252 | patterns 253 | 254 | 255 | captures 256 | 257 | 1 258 | 259 | name 260 | punctuation.separator.method-call.fsharp 261 | 262 | 263 | match 264 | [A-Z]\w*(\.) 265 | name 266 | meta.method.fsharp 267 | 268 | 269 | 270 | 271 | 272 | modules 273 | 274 | patterns 275 | 276 | 277 | begin 278 | \b(open)\s+([A-Z][a-zA-Z0-9'_]*)(?=(\.[A-Z][a-zA-Z0-9_]*)*) 279 | beginCaptures 280 | 281 | 1 282 | 283 | name 284 | keyword.other.fsharp 285 | 286 | 2 287 | 288 | name 289 | support.other.module.fsharp 290 | 291 | 292 | end 293 | (\s|$) 294 | name 295 | meta.module.open.fsharp 296 | patterns 297 | 298 | 299 | captures 300 | 301 | 1 302 | 303 | name 304 | punctuation.separator.module-reference.fsharp 305 | 306 | 2 307 | 308 | name 309 | support.other.module.fsharp 310 | 311 | 312 | match 313 | (\.)([A-Z][a-zA-Z0-9'_]*) 314 | name 315 | support.other.module.fsharp 316 | 317 | 318 | 319 | 320 | begin 321 | ^\s*(module)\s+([A-Z][a-zA-Z0-9'_]*)\s*(=)\s*([A-Z][a-zA-Z0-9'_]*) 322 | beginCaptures 323 | 324 | 1 325 | 326 | name 327 | keyword.other.module-definition.fsharp 328 | 329 | 2 330 | 331 | name 332 | entity.name.type.module.fsharp 333 | 334 | 3 335 | 336 | name 337 | punctuation.separator.module-definition.fsharp 338 | 339 | 4 340 | 341 | name 342 | support.other.module.fsharp 343 | 344 | 345 | end 346 | (\s|$) 347 | name 348 | meta.module.alias.fsharp 349 | patterns 350 | 351 | 352 | captures 353 | 354 | 1 355 | 356 | name 357 | punctuation.separator.module-reference.fsharp 358 | 359 | 2 360 | 361 | name 362 | support.other.module.fsharp 363 | 364 | 365 | match 366 | (\.)([A-Z][a-zA-Z0-9'_]*) 367 | name 368 | support.other.module.fsharp 369 | 370 | 371 | 372 | 373 | applyEndPatternLast 374 | 1 375 | begin 376 | (?<!\w)([A-Z][a-zA-Z0-9_]*)(\.) 377 | beginCaptures 378 | 379 | 1 380 | 381 | name 382 | support.other.module.fsharp 383 | 384 | 2 385 | 386 | name 387 | punctuation.separator.module-reference.fsharp 388 | 389 | 390 | end 391 | (?=.) 392 | name 393 | meta.module.reference.fsharp 394 | patterns 395 | 396 | 397 | captures 398 | 399 | 1 400 | 401 | name 402 | punctuation.separator.module-reference.fsharp 403 | 404 | 405 | match 406 | [A-Z][a-zA-Z0-9_]+(\.) 407 | name 408 | support.other.module.fsharp 409 | 410 | 411 | 412 | 413 | 414 | strings 415 | 416 | patterns 417 | 418 | 419 | begin 420 | (") 421 | beginCaptures 422 | 423 | 1 424 | 425 | name 426 | punctuation.definition.string.begin.fsharp 427 | 428 | 429 | end 430 | (") 431 | endCaptures 432 | 433 | 1 434 | 435 | name 436 | punctuation.definition.string.end.fsharp 437 | 438 | 439 | name 440 | string.quoted.double.fsharp 441 | patterns 442 | 443 | 444 | match 445 | \\([\\'ntbr]|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8}) 446 | name 447 | constant.character.string.escape.fsharp 448 | 449 | 450 | match 451 | \\(?![\\'ntbr]|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8}). 452 | name 453 | invalid.illegal.character.string.fsharp 454 | 455 | 456 | 457 | 458 | 459 | structure 460 | 461 | patterns 462 | 463 | 464 | begin 465 | \( 466 | end 467 | \) 468 | name 469 | meta.paren-group.fsharp 470 | patterns 471 | 472 | 473 | include 474 | $self 475 | 476 | 477 | 478 | 479 | 480 | variables 481 | 482 | patterns 483 | 484 | 485 | match 486 | \(\) 487 | name 488 | variable.parameter.unit.fsharp 489 | 490 | 491 | match 492 | [a-z]\w* 493 | name 494 | variable.parameter.fsharp 495 | 496 | 497 | 498 | 499 | scopeName 500 | source.fsharp 501 | uuid 502 | 6BEEF5E4-D367-49CF-8887-A08B7FA2C3FB 503 | 504 | 505 | --------------------------------------------------------------------------------