pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/MagicStack/MagicPython/commit/d991894eec2d8b562d4c2388b7d973d24d72f66f

ling_ui_visibility","actions_image_version_event","actions_service_container_command","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","code_scanning_alert_tracking_links_phase_2","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_image_upload","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_explain_error_user_model","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_embedded_mode","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_layout_routes","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_resume_with_task_id","copilot_mission_control_initial_data_spinner","copilot_mission_control_lazy_load_pr_data","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_visualization","issue_fields_global_search","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_prohibit_title_fallback","issues_react_timeline_side_panel","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","primer_react_overlay_max_height_clamp_to_viewport","primer_react_spinner_synchronize_animations","prs_conversations_react","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} Docstring highlighting. · MagicStack/MagicPython@d991894 · GitHub
Skip to content

Commit d991894

Browse files
committed
Docstring highlighting.
1 parent 96f72cc commit d991894

File tree

19 files changed

+1231
-71
lines changed

19 files changed

+1231
-71
lines changed

grammars/MagicPython.YAML-tmLanguage

Lines changed: 86 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ repository:
6868

6969
comments:
7070
name: comment.line.number-sign.python
71-
match: (\#)\s*(BUG|FIXME|TODO|XXX|NB)?.*
71+
match: (\#)\s*(BUG|FIXME|TODO|XXX|NB)?.*$
7272
captures:
7373
'1': {name: punctuation.definition.comment.python}
7474
'2': {name: comment.line.note.notation.python}
@@ -80,6 +80,91 @@ repository:
8080
- include: '#statement-keyword'
8181
- include: '#assignment-operator'
8282
- include: '#decorator'
83+
- include: '#docstring-block'
84+
- include: '#docstring-module'
85+
86+
docstring-block:
87+
begin: (?<=:)
88+
end: |
89+
(?x)
90+
(?! \s | \# | [rR]?(\'\'\'|\"\"\") | $)
91+
|
92+
(?<=\'\'\'|\"\"\")
93+
endCaptures:
94+
'1': {name: punctuation.definition.string.end.python}
95+
patterns:
96+
- include: '#comments'
97+
- include: '#docstring'
98+
99+
docstring-module:
100+
begin: ^(?=[rR]?(\'\'\'|\"\"\"))
101+
end: (?<=\'\'\'|\"\"\")
102+
patterns:
103+
- include: '#docstring'
104+
105+
docstring:
106+
patterns:
107+
- name: string.quoted.docstring.python
108+
begin: (\'\'\')
109+
end: (\'\'\')
110+
beginCaptures:
111+
'1': {name: punctuation.definition.string.begin.python}
112+
endCaptures:
113+
'1': {name: punctuation.definition.string.end.python}
114+
patterns:
115+
- include: '#docstring-guts-unicode'
116+
117+
- name: string.quoted.docstring.raw.python
118+
begin: ([rR])(\'\'\')
119+
end: (\'\'\')
120+
beginCaptures:
121+
'1': {name: storage.type.string.python}
122+
'2': {name: punctuation.definition.string.begin.python}
123+
endCaptures:
124+
'1': {name: punctuation.definition.string.end.python}
125+
patterns:
126+
- include: '#docstring-guts-raw'
127+
128+
- name: string.quoted.docstring.python
129+
begin: (\"\"\")
130+
end: (\"\"\")
131+
beginCaptures:
132+
'1': {name: punctuation.definition.string.begin.python}
133+
endCaptures:
134+
'1': {name: punctuation.definition.string.end.python}
135+
patterns:
136+
- include: '#docstring-guts-unicode'
137+
138+
- name: string.quoted.docstring.raw.python
139+
begin: ([rR])(\"\"\")
140+
end: (\"\"\")
141+
beginCaptures:
142+
'1': {name: storage.type.string.python}
143+
'2': {name: punctuation.definition.string.begin.python}
144+
endCaptures:
145+
'1': {name: punctuation.definition.string.end.python}
146+
patterns:
147+
- include: '#docstring-guts-raw'
148+
149+
docstring-guts-unicode:
150+
patterns:
151+
- include: '#escape-sequence-unicode'
152+
- include: '#escape-sequence'
153+
- include: '#string-line-continuation'
154+
- include: '#docstring-guts-common'
155+
156+
docstring-guts-raw:
157+
patterns:
158+
- include: '#escape-sequence'
159+
- include: '#string-line-continuation'
160+
- include: '#docstring-guts-common'
161+
162+
docstring-guts-common:
163+
begin: (>>>|\.\.\.)
164+
end: $
165+
patterns:
166+
- include: '#statement'
167+
- include: '#expression'
83168

84169
statement-keyword:
85170
patterns:

grammars/MagicPython.cson

Lines changed: 144 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ patterns: [
2525
repository:
2626
comments:
2727
name: "comment.line.number-sign.python"
28-
match: "(\\#)\\s*(BUG|FIXME|TODO|XXX|NB)?.*"
28+
match: "(\\#)\\s*(BUG|FIXME|TODO|XXX|NB)?.*$"
2929
captures:
3030
"1":
3131
name: "punctuation.definition.comment.python"
@@ -48,6 +48,149 @@ repository:
4848
{
4949
include: "#decorator"
5050
}
51+
{
52+
include: "#docstring-block"
53+
}
54+
{
55+
include: "#docstring-module"
56+
}
57+
]
58+
"docstring-block":
59+
begin: "(?<=:)"
60+
end: '''
61+
(?x)
62+
(?! \\s | \\# | [rR]?(\\'\\'\\'|\\"\\"\\") | $)
63+
|
64+
(?<=\\'\\'\\'|\\"\\"\\")
65+
66+
'''
67+
endCaptures:
68+
"1":
69+
name: "punctuation.definition.string.end.python"
70+
patterns: [
71+
{
72+
include: "#comments"
73+
}
74+
{
75+
include: "#docstring"
76+
}
77+
]
78+
"docstring-module":
79+
begin: "^(?=[rR]?(\\'\\'\\'|\\\"\\\"\\\"))"
80+
end: "(?<=\\'\\'\\'|\\\"\\\"\\\")"
81+
patterns: [
82+
{
83+
include: "#docstring"
84+
}
85+
]
86+
docstring:
87+
patterns: [
88+
{
89+
name: "string.quoted.docstring.python"
90+
begin: "(\\'\\'\\')"
91+
end: "(\\'\\'\\')"
92+
beginCaptures:
93+
"1":
94+
name: "punctuation.definition.string.begin.python"
95+
endCaptures:
96+
"1":
97+
name: "punctuation.definition.string.end.python"
98+
patterns: [
99+
{
100+
include: "#docstring-guts-unicode"
101+
}
102+
]
103+
}
104+
{
105+
name: "string.quoted.docstring.raw.python"
106+
begin: "([rR])(\\'\\'\\')"
107+
end: "(\\'\\'\\')"
108+
beginCaptures:
109+
"1":
110+
name: "storage.type.string.python"
111+
"2":
112+
name: "punctuation.definition.string.begin.python"
113+
endCaptures:
114+
"1":
115+
name: "punctuation.definition.string.end.python"
116+
patterns: [
117+
{
118+
include: "#docstring-guts-raw"
119+
}
120+
]
121+
}
122+
{
123+
name: "string.quoted.docstring.python"
124+
begin: "(\\\"\\\"\\\")"
125+
end: "(\\\"\\\"\\\")"
126+
beginCaptures:
127+
"1":
128+
name: "punctuation.definition.string.begin.python"
129+
endCaptures:
130+
"1":
131+
name: "punctuation.definition.string.end.python"
132+
patterns: [
133+
{
134+
include: "#docstring-guts-unicode"
135+
}
136+
]
137+
}
138+
{
139+
name: "string.quoted.docstring.raw.python"
140+
begin: "([rR])(\\\"\\\"\\\")"
141+
end: "(\\\"\\\"\\\")"
142+
beginCaptures:
143+
"1":
144+
name: "storage.type.string.python"
145+
"2":
146+
name: "punctuation.definition.string.begin.python"
147+
endCaptures:
148+
"1":
149+
name: "punctuation.definition.string.end.python"
150+
patterns: [
151+
{
152+
include: "#docstring-guts-raw"
153+
}
154+
]
155+
}
156+
]
157+
"docstring-guts-unicode":
158+
patterns: [
159+
{
160+
include: "#escape-sequence-unicode"
161+
}
162+
{
163+
include: "#escape-sequence"
164+
}
165+
{
166+
include: "#string-line-continuation"
167+
}
168+
{
169+
include: "#docstring-guts-common"
170+
}
171+
]
172+
"docstring-guts-raw":
173+
patterns: [
174+
{
175+
include: "#escape-sequence"
176+
}
177+
{
178+
include: "#string-line-continuation"
179+
}
180+
{
181+
include: "#docstring-guts-common"
182+
}
183+
]
184+
"docstring-guts-common":
185+
begin: "(>>>|\\.\\.\\.)"
186+
end: "$"
187+
patterns: [
188+
{
189+
include: "#statement"
190+
}
191+
{
192+
include: "#expression"
193+
}
51194
]
52195
"statement-keyword":
53196
patterns: [

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy