Created
March 1, 2018 23:40
-
-
Save phpdude/d0ee7cf19965012eb4e64818554ced52 to your computer and use it in GitHub Desktop.
API Blueprint fix for syntax highlighting in Request and extra coloring for better reading documentation files (~/.atom/packages/language-api-blueprint/grammars/apiblueprint.cson)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fileTypes: [ | |
"apib" | |
] | |
foldingStartMarker: ''' | |
(?x) | |
(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\\b.*?> | |
|<!--(?!.*-->) | |
|\\{\\s*($|\\?>\\s*$|//|/\\*(.*\\*/\\s*$|(?!.*?\\*/))) | |
) | |
''' | |
foldingStopMarker: ''' | |
(?x) | |
(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)> | |
|^\\s*--> | |
|(^|\\s)\\} | |
) | |
''' | |
keyEquivalent: "^~M" | |
name: "API Blueprint" | |
patterns: [ | |
{ | |
include: "#blueprint_group" | |
} | |
{ | |
include: "#blueprint_data_structures" | |
} | |
{ | |
include: "#blueprint_action" | |
} | |
{ | |
include: "#blueprint_resource" | |
} | |
{ | |
include: "#blueprint_shorthand" | |
} | |
{ | |
name: "blueprint.response.json" | |
begin: "([-+*]) (?:([Rr]equest)|([Rr]esponse)) (?:(\\d+)|([^\\(]+))?(?: (\\(.*\\/+json(?:[ ;\\/]+.*)?\\)))+" | |
end: "^(?=\\S)" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
"2": | |
name: "markup.heading.markdown punctuation.definition.heading.bold" | |
"3": | |
name: "markup.italic.markdown" | |
"4": | |
name: "constant.numeric" | |
"5": | |
name: "keyword.other" | |
"6": | |
name: "variable.language.fenced.markdown" | |
patterns: [ | |
{ | |
include: "#http-headers" | |
} | |
{ | |
include: "#mson-block" | |
} | |
{ | |
begin: "([-+*]) [Bb]ody" | |
end: "^(?=(?=\\S)|(?=\\s+\\+))" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
patterns: [ | |
{ | |
include: "source.js" | |
} | |
] | |
} | |
{ | |
include: "#response-unstyled-section" | |
} | |
{ | |
include: "source.js" | |
} | |
] | |
} | |
{ | |
name: "blueprint.response.xml" | |
begin: "([-+*]) ([Rr]equest|[Rr]esponse) (\\d+)?(?: (\\(.*\\/+xml(?:[ ;\\/]+.*)?\\)))+" | |
end: "^(?=\\S)" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
"3": | |
name: "constant.numeric" | |
"4": | |
name: "variable.language.fenced.markdown" | |
patterns: [ | |
{ | |
include: "#http-headers" | |
} | |
{ | |
include: "#mson-block" | |
} | |
{ | |
begin: "([-+*]) [Bb]ody" | |
end: "^(?=(?=\\S)|(?=\\s+\\+))" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
patterns: [ | |
{ | |
include: "text.xml" | |
} | |
] | |
} | |
{ | |
include: "#response-unstyled-section" | |
} | |
{ | |
include: "text.xml" | |
} | |
] | |
} | |
{ | |
name: "blueprint.response" | |
begin: "([-+*]) ([Rr]equest|[Rr]esponse) ?(\\d+)?(?: (\\(.*\\))+)?" | |
end: "^(?=\\S)" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
"3": | |
name: "constant.numeric" | |
"4": | |
name: "variable.language.fenced.markdown" | |
patterns: [ | |
{ | |
include: "#http-headers" | |
} | |
{ | |
include: "#mson-block" | |
} | |
{ | |
include: "#response-unstyled-section" | |
} | |
] | |
} | |
{ | |
include: "#mson-block" | |
} | |
{ | |
include: "#gfm" | |
} | |
] | |
repository: | |
blueprint_group: | |
match: "^[#]{1,6} [Gg]roup.*\\n?" | |
name: "markup.heading.markdown punctuation.definition.heading.markdown" | |
blueprint_resource: | |
match: "^[#]{1,6} .*\\[(.*)\\]\\n?" | |
name: "markup.heading.markdown punctuation.definition.heading.markdown" | |
captures: | |
"1": | |
name: "meta.link.inet.markdown markup.underline.link.markdown" | |
blueprint_action: | |
match: "^[#]{1,6} .*\\[(HEAD|GET|PUT|POST|PATCH|DELETE)(.*)\\]\\n?" | |
name: "markup.heading.markdown punctuation.definition.heading.markdown" | |
captures: | |
"1": | |
name: "markup.quote" | |
"2": | |
name: "meta.link.inet.markdown markup.underline.link.markdown" | |
blueprint_data_structures: | |
begin: "^([#]{1,6} [Dd]ata [Ss]tructures)" | |
end: "^(?=#\\s)" | |
captures: | |
"1": | |
name: "markup.heading.markdown punctuation.definition.heading.markdown" | |
patterns: [ | |
{ | |
include: "text.html.markdown.source.gfm.mson" | |
} | |
] | |
blueprint_shorthand: | |
match: "^[#]{1,6} (HEAD|GET|PUT|POST|PATCH|DELETE) (.*)\\n?" | |
name: "markup.heading.markdown punctuation.definition.heading.markdown" | |
captures: | |
"2": | |
name: "meta.link.inet.markdown markup.underline.link.markdown" | |
"http-headers": | |
begin: "([-+*]) [Hh]eaders" | |
end: "^(?=(?=\\S)|(?=\\s+\\+))" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
patterns: [ | |
{ | |
match: "(.*?):(.*)" | |
captures: | |
"1": | |
name: "keyword" | |
"2": | |
name: "header-value" | |
} | |
] | |
"mson-block": | |
patterns: [ | |
{ | |
begin: "^([-+*]) ([Aa]ttributes|[Pp]arameters)" | |
end: "^(?=\\S)" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
name: "mson-block" | |
patterns: [ | |
{ | |
include: "text.html.markdown.source.gfm.mson" | |
} | |
] | |
} | |
{ | |
begin: "^(\\s+)([-+*]) ([Aa]ttributes|[Pp]arameters)" | |
end: "^(?!\\1|\\n)|(?=\\1[-+*])" | |
beginCaptures: | |
"2": | |
name: "variable.unordered.list.gfm" | |
name: "mson-block" | |
patterns: [ | |
{ | |
include: "text.html.markdown.source.gfm.mson" | |
} | |
] | |
} | |
] | |
"response-unstyled-section": | |
comment: "Ignores list items that aren't the previously matched headers or body" | |
begin: "([-+*])" | |
end: "^(?=(?=\\S)|(?=\\s+[-+*]))" | |
beginCaptures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
gfm: | |
patterns: [ | |
{ | |
match: "\\\\." | |
name: "constant.character.escape.gfm" | |
} | |
{ | |
begin: "(?<=^|[^\\w\\d\\*])\\*\\*\\*(?!$|\\*|\\s)" | |
end: "(?<!^|\\s)\\*\\*\\**\\*(?=$|[^\\w|\\d])" | |
name: "markup.bold.italic.gfm" | |
} | |
{ | |
begin: "(?<=^|[^\\w\\d_])___(?!$|_|\\s)" | |
end: "(?<!^|\\s)___*_(?=$|[^\\w|\\d])" | |
name: "markup.bold.italic.gfm" | |
} | |
{ | |
begin: "(?<=^|[^\\w\\d\\*])\\*\\*(?!$|\\*|\\s)" | |
end: "(?<!^|\\s)\\*\\**\\*(?=$|[^\\w|\\d])" | |
name: "markup.bold.gfm" | |
} | |
{ | |
begin: "(?<=^|[^\\w\\d_])__(?!$|_|\\s)" | |
end: "(?<!^|\\s)__*_(?=$|[^\\w|\\d])" | |
name: "markup.bold.gfm" | |
} | |
{ | |
begin: "(?<=^|[^\\w\\d\\*])\\*(?!$|\\*|\\s)" | |
end: "(?<!^|\\s)\\**\\*(?=$|[^\\w|\\d])" | |
name: "markup.italic.gfm" | |
} | |
{ | |
begin: "(?<=^|[^\\w\\d_\\{\\}])_(?!$|_|\\s)" | |
end: "(?<!^|\\s)_*_(?=$|[^\\w|\\d])" | |
name: "markup.italic.gfm" | |
} | |
{ | |
begin: "(?<=^|[^\\w\\d~])~~(?!$|~|\\s)" | |
end: "(?<!^|\\s)~~*~(?=$|[^\\w|\\d])" | |
name: "markup.strike.gfm" | |
} | |
{ | |
begin: "^([#]{6})(\\s*)" | |
end: "$" | |
name: "markup.heading.heading-6.gfm" | |
captures: | |
"1": | |
name: "markup.heading.marker.gfm" | |
"2": | |
name: "markup.heading.space.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
begin: "^([#]{5})(\\s*)" | |
end: "$" | |
name: "markup.heading.heading-5.gfm" | |
captures: | |
"1": | |
name: "markup.heading.marker.gfm" | |
"2": | |
name: "markup.heading.space.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
begin: "^([#]{4})(\\s*)" | |
end: "$" | |
name: "markup.heading.heading-4.gfm" | |
captures: | |
"1": | |
name: "markup.heading.marker.gfm" | |
"2": | |
name: "markup.heading.space.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
begin: "^([#]{3})(\\s*)" | |
end: "$" | |
name: "markup.heading.heading-3.gfm" | |
captures: | |
"1": | |
name: "markup.heading.marker.gfm" | |
"2": | |
name: "markup.heading.space.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
begin: "^([#]{2})(\\s*)" | |
end: "$" | |
name: "markup.heading.heading-2.gfm" | |
captures: | |
"1": | |
name: "markup.heading.marker.gfm" | |
"2": | |
name: "markup.heading.space.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
begin: "^([#]{1})(\\s*)" | |
end: "$" | |
name: "markup.heading.heading-1.gfm" | |
captures: | |
"1": | |
name: "markup.heading.marker.gfm" | |
"2": | |
name: "markup.heading.space.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
match: "(:)(\\+1|\\-1|100|1234|8ball|a|ab|abc|abcd|accept|aerial_tramway|airplane|alarm_clock|alien|ambulance|anchor|angel|anger|angry|anguished|ant|apple|aquarius|aries|arrow_backward|arrow_double_down|arrow_double_up|arrow_down|arrow_down_small|arrow_forward|arrow_heading_down|arrow_heading_up|arrow_left|arrow_lower_left|arrow_lower_right|arrow_right|arrow_right_hook|arrow_up|arrow_up_down|arrow_up_small|arrow_upper_left|arrow_upper_right|arrows_clockwise|arrows_counterclockwise|art|articulated_lorry|astonished|atm|b|baby|baby_bottle|baby_chick|baby_symbol|back|baggage_claim|balloon|ballot_box_with_check|bamboo|banana|bangbang|bank|bar_chart|barber|baseball|basketball|bath|bathtub|battery|bear|bee|beer|beers|beetle|beginner|bell|bento|bicyclist|bike|bikini|bird|birthday|black_circle|black_joker|black_medium_small_square|black_medium_square|black_nib|black_small_square|black_square|black_square_button|blossom|blowfish|blue_book|blue_car|blue_heart|blush|boar|boat|bomb|book|bookmark|bookmark_tabs|books|boom|boot|bouquet|bow|bowling|bowtie|boy|bread|bride_with_veil|bridge_at_night|briefcase|broken_heart|bug|bulb|bullettrain_front|bullettrain_side|bus|busstop|bust_in_silhouette|busts_in_silhouette|cactus|cake|calendar|calling|camel|camera|cancer|candy|capital_abcd|capricorn|car|card_index|carousel_horse|cat|cat2|cd|chart|chart_with_downwards_trend|chart_with_upwards_trend|checkered_flag|cherries|cherry_blossom|chestnut|chicken|children_crossing|chocolate_bar|christmas_tree|church|cinema|circus_tent|city_sunrise|city_sunset|cl|clap|clapper|clipboard|clock1|clock10|clock1030|clock11|clock1130|clock12|clock1230|clock130|clock2|clock230|clock3|clock330|clock4|clock430|clock5|clock530|clock6|clock630|clock7|clock730|clock8|clock830|clock9|clock930|closed_book|closed_lock_with_key|closed_umbrella|cloud|clubs|cn|cocktail|coffee|cold_sweat|collision|computer|confetti_ball|confounded|confused|congratulations|construction|construction_worker|convenience_store|cookie|cool|cop|copyright|corn|couple|couple_with_heart|couplekiss|cow|cow2|credit_card|crocodile|crossed_flags|crown|cry|crying_cat_face|crystal_ball|cupid|curly_loop|currency_exchange|curry|custard|customs|cyclone|dancer|dancers|dango|dart|dash|date|de|deciduous_tree|department_store|diamond_shape_with_a_dot_inside|diamonds|disappointed|disappointed_relieved|dizzy|dizzy_face|do_not_litter|dog|dog2|dollar|dolls|dolphin|donut|door|doughnut|dragon|dragon_face|dress|dromedary_camel|droplet|dvd|e\\-mail|ear|ear_of_rice|earth_africa|earth_americas|earth_asia|egg|eggplant|eight|eight_pointed_black_star|eight_spoked_asterisk|electric_plug|elephant|email|end|envelope|es|euro|european_castle|european_post_office|evergreen_tree|exclamation|expressionless|eyeglasses|eyes|facepunch|factory|fallen_leaf|family|fast_forward|fax|fearful|feelsgood|feet|ferris_wheel|file_folder|finnadie|fire|fire_engine|fireworks|first_quarter_moon|first_quarter_moon_with_face|fish|fish_cake|fishing_pole_and_fish|fist|five|flags|flashlight|floppy_disk|flower_playing_cards|flushed|foggy|football|fork_and_knife|fountain|four|four_leaf_clover|fr|free|fried_shrimp|fries|frog|frowning|fu|fuelpump|full_moon|full_moon_with_face|game_die|gb|gem|gemini|ghost|gift|gift_heart|girl|globe_with_meridians|goat|goberserk|godmode|golf|grapes|green_apple|green_book|green_heart|grey_exclamation|grey_question|grimacing|grin|grinning|guardsman|guitar|gun|haircut|hamburger|hammer|hamster|hand|handbag|hankey|hash|hatched_chick|hatching_chick|headphones|hear_no_evil|heart|heart_decoration|heart_eyes|heart_eyes_cat|heartbeat|heartpulse|hearts|heavy_check_mark|heavy_division_sign|heavy_dollar_sign|heavy_exclamation_mark|heavy_minus_sign|heavy_multiplication_x|heavy_plus_sign|helicopter|herb|hibiscus|high_brightness|high_heel|hocho|honey_pot|honeybee|horse|horse_racing|hospital|hotel|hotsprings|hourglass|hourglass_flowing_sand|house|house_with_garden|hurtrealbad|hushed|ice_cream|icecream|id|ideograph_advantage|imp|inbox_tray|incoming_envelope|information_desk_person|information_source|innocent|interrobang|iphone|it|izakaya_lantern|jack_o_lantern|japan|japanese_castle|japanese_goblin|japanese_ogre|jeans|joy|joy_cat|jp|key|keycap_ten|kimono|kiss|kissing|kissing_cat|kissing_closed_eyes|kissing_face|kissing_heart|kissing_smiling_eyes|koala|koko|kr|large_blue_circle|large_blue_diamond|large_orange_diamond|last_quarter_moon|last_quarter_moon_with_face|laughing|leaves|ledger|left_luggage|left_right_arrow|leftwards_arrow_with_hook|lemon|leo|leopard|libra|light_rail|link|lips|lipstick|lock|lock_with_ink_pen|lollipop|loop|loudspeaker|love_hotel|love_letter|low_brightness|m|mag|mag_right|mahjong|mailbox|mailbox_closed|mailbox_with_mail|mailbox_with_no_mail|man|man_with_gua_pi_mao|man_with_turban|mans_shoe|maple_leaf|mask|massage|meat_on_bone|mega|melon|memo|mens|metal|metro|microphone|microscope|milky_way|minibus|minidisc|mobile_phone_off|money_with_wings|moneybag|monkey|monkey_face|monorail|moon|mortar_board|mount_fuji|mountain_bicyclist|mountain_cableway|mountain_railway|mouse|mouse2|movie_camera|moyai|muscle|mushroom|musical_keyboard|musical_note|musical_score|mute|nail_care|name_badge|neckbeard|necktie|negative_squared_cross_mark|neutral_face|new|new_moon|new_moon_with_face|newspaper|ng|nine|no_bell|no_bicycles|no_entry|no_entry_sign|no_good|no_mobile_phones|no_mouth|no_pedestrians|no_smoking|non\\-potable_water|nose|notebook|notebook_with_decorative_cover|notes|nut_and_bolt|o|o2|ocean|octocat|octopus|oden|office|ok|ok_hand|ok_woman|older_man|older_woman|on|oncoming_automobile|oncoming_bus|oncoming_police_car|oncoming_taxi|one|open_file_folder|open_hands|open_mouth|ophiuchus|orange_book|outbox_tray|ox|package|page_facing_up|page_with_curl|pager|palm_tree|panda_face|paperclip|parking|part_alternation_mark|partly_sunny|passport_control|paw_prints|peach|pear|pencil|pencil2|penguin|pensive|performing_arts|persevere|person_frowning|person_with_blond_hair|person_with_pouting_face|phone|pig|pig2|pig_nose|pill|pineapple|pisces|pizza|plus1|point_down|point_left|point_right|point_up|point_up_2|police_car|poodle|poop|post_office|postal_horn|postbox|potable_water|pouch|poultry_leg|pound|pouting_cat|pray|princess|punch|purple_heart|purse|pushpin|put_litter_in_its_place|question|rabbit|rabbit2|racehorse|radio|radio_button|rage|rage1|rage2|rage3|rage4|railway_car|rainbow|raised_hand|raised_hands|raising_hand|ram|ramen|rat|recycle|red_car|red_circle|registered|relaxed|relieved|repeat|repeat_one|restroom|revolving_hearts|rewind|ribbon|rice|rice_ball|rice_cracker|rice_scene|ring|rocket|roller_coaster|rooster|rose|rotating_light|round_pushpin|rowboat|ru|rugby_football|runner|running|running_shirt_with_sash|sa|sagittarius|sailboat|sake|sandal|santa|satellite|satisfied|saxophone|school|school_satchel|scissors|scorpius|scream|scream_cat|scroll|seat|secret|see_no_evil|seedling|seven|shaved_ice|sheep|shell|ship|shipit|shirt|shit|shoe|shower|signal_strength|six|six_pointed_star|ski|skull|sleeping|sleepy|slot_machine|small_blue_diamond|small_orange_diamond|small_red_triangle|small_red_triangle_down|smile|smile_cat|smiley|smiley_cat|smiling_imp|smirk|smirk_cat|smoking|snail|snake|snowboarder|snowflake|snowman|sob|soccer|soon|sos|sound|space_invader|spades|spaghetti|sparkle|sparkler|sparkles|sparkling_heart|speak_no_evil|speaker|speech_balloon|speedboat|squirrel|star|star2|stars|station|statue_of_liberty|steam_locomotive|stew|straight_ruler|strawberry|stuck_out_tongue|stuck_out_tongue_closed_eyes|stuck_out_tongue_winking_eye|sun_with_face|sunflower|sunglasses|sunny|sunrise|sunrise_over_mountains|surfer|sushi|suspect|suspension_railway|sweat|sweat_drops|sweat_smile|sweet_potato|swimmer|symbols|syringe|tada|tanabata_tree|tangerine|taurus|taxi|tea|telephone|telephone_receiver|telescope|tennis|tent|thought_balloon|three|thumbsdown|thumbsup|ticket|tiger|tiger2|tired_face|tm|toilet|tokyo_tower|tomato|tongue|top|tophat|tractor|traffic_light|train|train2|tram|triangular_flag_on_post|triangular_ruler|trident|triumph|trolleybus|trollface|trophy|tropical_drink|tropical_fish|truck|trumpet|tshirt|tulip|turtle|tv|twisted_rightwards_arrows|two|two_hearts|two_men_holding_hands|two_women_holding_hands|u5272|u5408|u55b6|u6307|u6708|u6709|u6e80|u7121|u7533|u7981|u7a7a|uk|umbrella|unamused|underage|unlock|up|us|v|vertical_traffic_light|vhs|vibration_mode|video_camera|video_game|violin|virgo|volcano|vs|walking|waning_crescent_moon|waning_gibbous_moon|warning|watch|water_buffalo|watermelon|wave|wavy_dash|waxing_crescent_moon|waxing_gibbous_moon|wc|weary|wedding|whale|whale2|wheelchair|white_check_mark|white_circle|white_flower|white_large_square|white_medium_small_square|white_medium_square|white_small_square|white_square_button|wind_chime|wine_glass|wink|wolf|woman|womans_clothes|womans_hat|womens|worried|wrench|x|yellow_heart|yen|yum|zap|zero|zzz)(:)" | |
name: "string.emoji.gfm" | |
captures: | |
"1": | |
name: "string.emoji.start.gfm" | |
"2": | |
name: "string.emoji.word.gfm" | |
"3": | |
name: "string.emoji.end.gfm" | |
} | |
{ | |
match: "(&)[a-zA-Z0-9]+(;)" | |
name: "constant.character.entity.gfm" | |
captures: | |
"1": | |
name: "punctuation.definition.entity.gfm" | |
"2": | |
name: "punctuation.definition.entity.gfm" | |
} | |
{ | |
match: "(&)#[0-9]+(;)" | |
name: "constant.character.entity.gfm" | |
captures: | |
"1": | |
name: "punctuation.definition.entity.gfm" | |
"2": | |
name: "punctuation.definition.entity.gfm" | |
} | |
{ | |
match: "(&)#x[0-9a-fA-F]+(;)" | |
name: "constant.character.entity.gfm" | |
captures: | |
"1": | |
name: "punctuation.definition.entity.gfm" | |
"2": | |
name: "punctuation.definition.entity.gfm" | |
} | |
{ | |
begin: "\\A---$" | |
end: "^(---|\\.\\.\\.)$" | |
captures: | |
"0": | |
name: "comment.hr.gfm" | |
name: "front-matter.yaml.gfm" | |
patterns: [ | |
{ | |
include: "source.yaml" | |
} | |
] | |
} | |
{ | |
match: "^\\s*[*]{3,}\\s*$" | |
name: "comment.hr.gfm" | |
} | |
{ | |
match: "^\\s*[-]{3,}\\s*$" | |
name: "comment.hr.gfm" | |
} | |
{ | |
begin: "^\\s*[`~]{3,}\\s*coffee-?(script)?\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*[`~]{3,}$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.coffee.gfm" | |
contentName: "source.coffee" | |
patterns: [ | |
{ | |
include: "source.coffee" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*(javascript|js)\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.js.gfm" | |
contentName: "source.js" | |
patterns: [ | |
{ | |
include: "source.js" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*(markdown|mdown|md)\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*json\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.json.gfm" | |
contentName: "source.json" | |
patterns: [ | |
{ | |
include: "source.json" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*css\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.css.gfm" | |
contentName: "source.css" | |
patterns: [ | |
{ | |
include: "source.css" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*less\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.less.gfm" | |
contentName: "source.css.less" | |
patterns: [ | |
{ | |
include: "source.css.less" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*xml\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.xml.gfm" | |
contentName: "text.xml" | |
patterns: [ | |
{ | |
include: "text.xml" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*(ruby|rb)\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.ruby.gfm" | |
contentName: "source.ruby" | |
patterns: [ | |
{ | |
include: "source.ruby" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*java\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.java.gfm" | |
contentName: "source.java" | |
patterns: [ | |
{ | |
include: "source.java" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*erlang\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.erlang.gfm" | |
contentName: "source.erlang" | |
patterns: [ | |
{ | |
include: "source.erlang" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*go(lang)?\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.go.gfm" | |
contentName: "source.go" | |
patterns: [ | |
{ | |
include: "source.go" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*cs(harp)?\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.cs.gfm" | |
contentName: "source.cs" | |
patterns: [ | |
{ | |
include: "source.cs" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*php\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.php.gfm" | |
contentName: "source.php" | |
patterns: [ | |
{ | |
include: "source.php" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*(sh|bash)\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.shell.gfm" | |
contentName: "source.shell" | |
patterns: [ | |
{ | |
include: "source.shell" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*py(thon)?\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.python.gfm" | |
contentName: "source.python" | |
patterns: [ | |
{ | |
include: "source.python" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*c\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.c.gfm" | |
contentName: "source.c" | |
patterns: [ | |
{ | |
include: "source.c" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*c(pp|\\+\\+)\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.cpp.gfm" | |
contentName: "source.cpp" | |
patterns: [ | |
{ | |
include: "source.cpp" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*(objc|objective-c)\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.objc.gfm" | |
contentName: "source.objc" | |
patterns: [ | |
{ | |
include: "source.objc" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*html\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.html.gfm" | |
contentName: "source.html.basic" | |
patterns: [ | |
{ | |
include: "text.html.basic" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*ya?ml\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.yaml.gfm" | |
contentName: "source.yaml" | |
patterns: [ | |
{ | |
include: "source.yaml" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*elixir\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.elixir.gfm" | |
contentName: "source.elixir" | |
patterns: [ | |
{ | |
include: "source.elixir" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*(diff|patch|rej)\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.diff.gfm" | |
contentName: "source.diff" | |
patterns: [ | |
{ | |
include: "source.diff" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*julia\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.julia.gfm" | |
contentName: "source.julia" | |
patterns: [ | |
{ | |
include: "source.julia" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,})\\s*r\\s*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.code.r.gfm" | |
contentName: "source.r" | |
patterns: [ | |
{ | |
include: "source.r" | |
} | |
] | |
} | |
{ | |
begin: "^\\s*([`~]{3,}).*$" | |
beginCaptures: | |
"0": | |
name: "support.gfm" | |
end: "^\\s*\\1$" | |
endCaptures: | |
"0": | |
name: "support.gfm" | |
name: "markup.raw.gfm" | |
} | |
{ | |
begin: "(`+)(?!$)" | |
end: "\\1" | |
name: "markup.raw.gfm markup.raw.inline" | |
} | |
{ | |
match: "(\\[!)(\\[)([^\\]]*)(\\])((\\()[^\\)]+(\\)))(\\])(((\\()[^\\)]+(\\)))|((\\[)[^\\]]+(\\])))" | |
name: "link" | |
captures: | |
"1": | |
name: "punctuation.definition.begin.gfm" | |
"2": | |
name: "punctuation.definition.begin.gfm" | |
"3": | |
name: "entity.gfm" | |
"4": | |
name: "punctuation.definition.end.gfm" | |
"5": | |
name: "markup.underline.link.gfm" | |
"6": | |
name: "punctuation.definition.begin.gfm" | |
"7": | |
name: "punctuation.definition.end.gfm" | |
"8": | |
name: "punctuation.definition.end.gfm" | |
"10": | |
name: "markup.underline.link.gfm" | |
"11": | |
name: "punctuation.definition.begin.gfm" | |
"12": | |
name: "punctuation.definition.end.gfm" | |
"13": | |
name: "markup.underline.link.gfm" | |
"14": | |
name: "punctuation.definition.begin.gfm" | |
"15": | |
name: "punctuation.definition.end.gfm" | |
} | |
{ | |
match: "(\\[!)(\\[)([^\\]]*)(\\])((\\[)[^\\)]+(\\]))(\\])(((\\()[^\\)]+(\\)))|((\\[)[^\\]]+(\\])))" | |
name: "link" | |
captures: | |
"1": | |
name: "punctuation.definition.begin.gfm" | |
"2": | |
name: "punctuation.definition.begin.gfm" | |
"3": | |
name: "entity.gfm" | |
"4": | |
name: "punctuation.definition.end.gfm" | |
"5": | |
name: "markup.underline.link.gfm" | |
"6": | |
name: "punctuation.definition.begin.gfm" | |
"7": | |
name: "punctuation.definition.end.gfm" | |
"8": | |
name: "punctuation.definition.end.gfm" | |
"10": | |
name: "markup.underline.link.gfm" | |
"11": | |
name: "punctuation.definition.begin.gfm" | |
"12": | |
name: "punctuation.definition.end.gfm" | |
"13": | |
name: "markup.underline.link.gfm" | |
"14": | |
name: "punctuation.definition.begin.gfm" | |
"15": | |
name: "punctuation.definition.end.gfm" | |
} | |
{ | |
match: "!?(\\[)([^\\]]*)(\\])((\\()[^\\)]+(\\)))" | |
name: "link" | |
captures: | |
"1": | |
name: "punctuation.definition.begin.gfm" | |
"2": | |
name: "entity.gfm" | |
"3": | |
name: "punctuation.definition.end.gfm" | |
"4": | |
name: "markup.underline.link.gfm" | |
"5": | |
name: "punctuation.definition.begin.gfm" | |
"6": | |
name: "punctuation.definition.end.gfm" | |
} | |
{ | |
match: "!?(\\[)([^\\]]*)(\\])((\\[)[^\\]]*(\\]))" | |
name: "link" | |
captures: | |
"1": | |
name: "punctuation.definition.begin.gfm" | |
"2": | |
name: "entity.gfm" | |
"3": | |
name: "punctuation.definition.end.gfm" | |
"4": | |
name: "markup.underline.link.gfm" | |
"5": | |
name: "punctuation.definition.begin.gfm" | |
"6": | |
name: "punctuation.definition.end.gfm" | |
} | |
{ | |
match: "^\\s*(\\[)([^\\]]+)(\\])\\s*:\\s*<([^>]+)>" | |
name: "link" | |
captures: | |
"1": | |
name: "punctuation.definition.begin.gfm" | |
"2": | |
name: "entity.gfm" | |
"3": | |
name: "punctuation.definition.end.gfm" | |
"4": | |
name: "markup.underline.link.gfm" | |
} | |
{ | |
match: "^\\s*(\\[)([^\\]]+)(\\])\\s*(:)\\s*(\\S+)" | |
name: "link" | |
captures: | |
"1": | |
name: "punctuation.definition.begin.gfm" | |
"2": | |
name: "entity.gfm" | |
"3": | |
name: "punctuation.definition.end.gfm" | |
"4": | |
name: "punctuation.separator.key-value.gfm" | |
"5": | |
name: "markup.underline.link.gfm" | |
} | |
{ | |
match: "^\\s*([*+-])[ \\t]+" | |
captures: | |
"1": | |
name: "variable.unordered.list.gfm" | |
} | |
{ | |
match: "^\\s*(\\d+\\.)[ \\t]+" | |
captures: | |
"1": | |
name: "variable.ordered.list.gfm" | |
} | |
{ | |
begin: "^\\s*(>)" | |
end: "^\\s*?$" | |
beginCaptures: | |
"1": | |
name: "support.quote.gfm" | |
name: "comment.quote.gfm" | |
patterns: [ | |
{ | |
include: "$self" | |
} | |
] | |
} | |
{ | |
match: "(?<=^|\\s|\"|'|\\(|\\[)(@)(\\w[-\\w:]*)(?=[\\s\"'.,;\\)\\]])" | |
captures: | |
"1": | |
name: "variable.mention.gfm" | |
"2": | |
name: "string.username.gfm" | |
} | |
{ | |
match: "(?<=^|\\s|\"|'|\\(|\\[)(#)(\\d+)(?=[\\s\"'\\.,;\\)\\]])" | |
captures: | |
"1": | |
name: "variable.issue.tag.gfm" | |
"2": | |
name: "string.issue.number.gfm" | |
} | |
{ | |
match: "( )$" | |
captures: | |
"1": | |
name: "linebreak.gfm" | |
} | |
{ | |
begin: "<!--" | |
captures: | |
"0": | |
name: "punctuation.definition.comment.gfm" | |
end: "--\\s*>" | |
name: "comment.block.gfm" | |
} | |
{ | |
begin: "^\\|" | |
end: "\\|$" | |
captures: | |
"0": | |
name: "border.pipe.outer" | |
name: "table.gfm" | |
patterns: [ | |
{ | |
match: "(:?)(-+)(:?)" | |
captures: | |
"1": | |
name: "border.alignment" | |
"2": | |
name: "border.header" | |
"3": | |
name: "border.alignment" | |
} | |
{ | |
match: "\\|" | |
name: "border.pipe.inner" | |
} | |
] | |
} | |
] | |
scopeName: "text.html.markdown.source.gfm.apib" | |
uuid: "dd477cf1-34c4-49d2-ba09-f8445676ccd4" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Replace file
~/.atom/packages/language-api-blueprint/grammars/apiblueprint.cson
with the content above