From 0feedc2b93378111583008d705a1d558c0bf05ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 21:02:55 +0000 Subject: [PATCH 1/8] Bump sublime-text from `73a8bd7` to `9e3a92d` Bumps [sublime-text](https://github.com/maliayas/SublimeText_Documentation) from `73a8bd7` to `9e3a92d`. - [Commits](https://github.com/maliayas/SublimeText_Documentation/compare/73a8bd7cab6fe4ac84ac273d161556469246e1ab...9e3a92dce194d532ff371606163862eaf39ee986) --- updated-dependencies: - dependency-name: sublime-text dependency-version: 9e3a92dce194d532ff371606163862eaf39ee986 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- sublime-text | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sublime-text b/sublime-text index 73a8bd7..9e3a92d 160000 --- a/sublime-text +++ b/sublime-text @@ -1 +1 @@ -Subproject commit 73a8bd7cab6fe4ac84ac273d161556469246e1ab +Subproject commit 9e3a92dce194d532ff371606163862eaf39ee986 From 87ffb375829e22a3523e4903a79ed4848c071c55 Mon Sep 17 00:00:00 2001 From: Michael Lyons Date: Tue, 28 Apr 2026 09:29:42 -0400 Subject: [PATCH 2/8] Index exception in API reference Fixes #47 --- resources/sublime-text.toml | 5 +++++ test/test_docset.py | 1 + 2 files changed, 6 insertions(+) diff --git a/resources/sublime-text.toml b/resources/sublime-text.toml index dba65b7..a530a09 100644 --- a/resources/sublime-text.toml +++ b/resources/sublime-text.toml @@ -281,6 +281,11 @@ css = 'dl.class > dt[id]' attr = 'id' type = 'Class' +[[selectors.api_reference]] +css = 'dl.exception > dt[id]' +attr = 'id' +type = 'Exception' + [[selectors.api_reference]] css = 'dl.function > dt[id]' attr = 'id' diff --git a/test/test_docset.py b/test/test_docset.py index f287908..f6dbad5 100644 --- a/test/test_docset.py +++ b/test/test_docset.py @@ -370,6 +370,7 @@ def test_api_reference(self): ('Function', 'sublime.cache_path'), ('Attribute', 'sublime.KindId.COLOR_YELLOWISH'), ('Attribute', 'sublime.RegionFlags.DRAW_EMPTY_AS_OVERWRITE'), + ('Exception', 'sublime.FileTooLargeError'), ] self._test_a_doc_page_index('docs/api_reference.html', contains) From 009e18a65949ddf4b47336316e4cea4caaa2638b Mon Sep 17 00:00:00 2001 From: Michael Lyons Date: Wed, 29 Apr 2026 15:30:10 -0400 Subject: [PATCH 3/8] Fix some API Reference classes aligned right --- resources/sublime-text.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/sublime-text.toml b/resources/sublime-text.toml index a530a09..5e588c3 100644 --- a/resources/sublime-text.toml +++ b/resources/sublime-text.toml @@ -272,7 +272,7 @@ css = '#module-sublime_plugin h2 code' type = 'Module' [[selectors.api_reference]] -css = 'dl.class > div > dt[id]' +css = 'dl.class > div[id^=sublime]' attr = 'id' type = 'Class' From 633e95bcc1b0b90c431ecee0c975134ec0ac6857 Mon Sep 17 00:00:00 2001 From: Michael Lyons Date: Mon, 27 Apr 2026 12:31:04 -0400 Subject: [PATCH 4/8] Copy dashing output to file --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index d30f9ce..26f6456 100644 --- a/Makefile +++ b/Makefile @@ -29,10 +29,10 @@ build: mkdir -p $(out_folder) cd src && python generate_dashing.py # Sublime Text - cd $(st_site) && dashing build + cd $(st_site) && dashing build | tee ../../$(out_folder)/dashing-$(st_submodule).txt mv $(st_built_path) $(out_folder) # Sublime Merge - cd $(sm_site) && dashing build + cd $(sm_site) && dashing build | tee ../../$(out_folder)/dashing-$(sm_submodule).txt mv $(sm_built_path) $(out_folder) .PHONY: post-build From 0b30c9e4b44579dbfc54f65428c8ac4d12196995 Mon Sep 17 00:00:00 2001 From: Michael Lyons Date: Mon, 27 Apr 2026 15:25:06 -0400 Subject: [PATCH 5/8] Add a script to convert dashing output to tests The defaultdict output does not appear to be stable, so we sort the keys. Also, it doesn't account for existing exclusion tests. --- src/generate_tests_from_dashing.py | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/generate_tests_from_dashing.py diff --git a/src/generate_tests_from_dashing.py b/src/generate_tests_from_dashing.py new file mode 100644 index 0000000..e8aa9f0 --- /dev/null +++ b/src/generate_tests_from_dashing.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 + +""" +Strip portions of the HTML pages that we don't need +""" +import sys +from collections import defaultdict +from re import match, sub + +DASHING_LOGS = [ + '../out/dashing-sublime-merge.txt', + '../out/dashing-sublime-text.txt', +] + + +def dump_test_stuff(doc_path, assertions): + if not doc_path: + return + + name = match(r'docs/([\w-]+)\.html', doc_path).group(1) + tests = f''' + def test_{name.replace('-', '_')}(self): + contains = [ + {('\n' + (' ' * 12)).join(sorted(assertions.keys()))} + ] + self._test_a_doc_page_index('{doc_path}', contains)''' + print(tests) + + for assertion in [k for k in sorted(assertions.keys()) if assertions[k] > 1]: + print(f'{" " * 8}### {assertion} was found {assertions[assertion]} times') + + +def process_dashing_output(dashing_filepath): + doc_path = None + assertion_histogram = defaultdict(int) + + with open(dashing_filepath, 'r') as dashing_file: + + for line in dashing_file: + doc_path_match = match(r'(docs/[\w-]+\.html) looks like HTML$', line) + test_match = match(r"Match: '(.+)' is type (\w+) at", line) + + if doc_path_match: + dump_test_stuff(doc_path, assertion_histogram) + assertion_histogram = defaultdict(int) + doc_path = doc_path_match.group(1) + elif test_match: + index_type = test_match.group(2) + index_text = test_match.group(1).replace('\\', '\\\\') + assertion = f"('{index_type}', '{index_text}')," + assertion_histogram[assertion] += 1 + + dump_test_stuff(doc_path, assertion_histogram) + + +def main(): + + for dump in DASHING_LOGS: + print(f'\n# Starting test case for {dump} ###########################') + process_dashing_output(dump) + + +if __name__ == '__main__': + sys.exit(main()) From c511e02cfbd99484c8b85a08c4f7a5c2032a1afe Mon Sep 17 00:00:00 2001 From: Michael Lyons Date: Mon, 27 Apr 2026 15:30:18 -0400 Subject: [PATCH 6/8] Supplment and sort tests from generator script --- test/test_docset.py | 2407 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 2235 insertions(+), 172 deletions(-) diff --git a/test/test_docset.py b/test/test_docset.py index f287908..70b67b0 100644 --- a/test/test_docset.py +++ b/test/test_docset.py @@ -99,12 +99,83 @@ def _test_a_doc_page_index( class SublimeMergeDocsetTestCase(DocsetTestCaseBase): NAME = 'sublime-merge.docset' - def test_home(self): + def test_command_line(self): + contains = [ + ('Guide', 'Command Line'), + ('Section', 'Git Merge Tool Setup'), + ('Section', 'Git Merge Tool Usage'), + ('Section', 'Setup'), + ('Section', 'Usage'), + ] + self._test_a_doc_page_index('docs/command_line.html', contains) + + def test_command_palette(self): + contains = [ + ('Guide', 'Command Palette'), + ('Section', 'Entries'), + ('Section', 'Example'), + ('Section', 'User Entries'), + ] + self._test_a_doc_page_index('docs/command_palette.html', contains) + + def test_custom_commands(self): + contains = [ + ('Guide', 'Custom Commands'), + ('Section', 'Basic Example'), + ('Section', 'Using Selectors'), + ] + self._test_a_doc_page_index('docs/custom_commands.html', contains) + + def test_diff_context(self): + contains = [ + ('Guide', 'Diff Context'), + ('Section', 'Context Dragging'), + ('Section', 'Full File Context'), + ] + self._test_a_doc_page_index('docs/diff_context.html', contains) + + def test_faq(self): + contains = [ + ('Guide', 'Frequently Asked Questions'), + ('Section', 'Can I add custom Git commands to Sublime Merge?'), + ('Section', 'Can I customize the keybindings in Sublime Merge?'), + ('Section', 'Can I customize the theme in Sublime Merge?'), + ('Section', 'Can I diff between two commits?'), + ('Section', 'Can I do X in Sublime Merge?'), + ('Section', 'Can I edit an existing commit?'), + ('Section', 'Can I share feedback with the Sublime Merge team?'), + ('Section', 'Can I stage individual lines with Sublime Merge?'), + ('Section', 'How do I authenticate with a remote repository?'), + ('Section', 'How do I use Sublime Merge?'), + ('Section', 'What is Git / a Git Client / Sublime Merge?'), + ] + self._test_a_doc_page_index('docs/faq.html', contains) + + def test_getting_started(self): + contains = [ + ('Guide', 'Getting Started'), + ('Section', 'Adding remotes'), + ('Section', 'Cloning an existing repository'), + ('Section', 'Creating a branch'), + ('Section', 'Creating a commit'), + ('Section', 'Creating a new repository'), + ('Section', 'Fixing and editing commits'), + ('Section', 'Merging branches'), + ('Section', 'Pushing and pulling'), + ('Section', 'Remote authentication'), + ('Section', 'Resolving merge conflicts'), + ('Section', 'Setting the upstream'), + ('Section', 'Understanding the interface'), + ('Section', 'Using the command palette'), + ] + self._test_a_doc_page_index('docs/getting_started.html', contains) + + def test_index(self): contains = [ ('Guide', 'Documentation'), - ('Section', 'General'), - ('Section', 'Features'), ('Section', 'Customization'), + ('Section', 'Features'), + ('Section', 'General'), ('Section', 'Miscellaneous'), ('Section', 'Package Development'), ] @@ -112,280 +183,1956 @@ def test_home(self): def test_key_bindings(self): contains = [ + ('Filter', '"blame_mode"'), + ('Filter', '"can_commit"'), + ('Filter', '"collapsible"'), + ('Filter', '"command_status_visible"'), + ('Filter', '"control"'), + ('Filter', '"has_modified"'), + ('Filter', '"has_staged"'), + ('Filter', '"has_untracked"'), + ('Filter', '"is_blame"'), + ('Filter', '"is_diff"'), + ('Filter', '"is_editing_commit"'), + ('Filter', '"is_staged"'), + ('Filter', '"merge_mode"'), + ('Filter', '"overlay_visible"'), + ('Filter', '"search_mode"'), + ('Filter', '"tree_mode"'), ('Guide', 'Key Bindings'), - ('Setting', '"keys" Key'), ('Section', 'Bindings'), - ('Filter', '"search_mode"'), + ('Section', 'Example'), + ('Section', 'User Bindings'), + ('Setting', '"args" Key'), + ('Setting', '"command" Key'), + ('Setting', '"context" Key'), + ('Setting', '"keys" Key'), ] self._test_a_doc_page_index('docs/key_bindings.html', contains) - def test_themes(self): + def test_linux_repositories(self): contains = [ - ('Guide', 'Themes'), - ('Property', 'layer#.opacity'), - ('Section', 'Settings'), - ('Setting', 'overlay_scroll_bars'), - ('Element', 'root_tabs'), - ('Property', 'puck_color'), + ('Guide', 'Linux Package Manager Repositories'), + ('Section', 'apt'), + ('Section', 'dnf'), + ('Section', 'pacman'), + ('Section', 'yum'), + ('Section', 'zypper'), ] - self._test_a_doc_page_index('docs/themes.html', contains) + self._test_a_doc_page_index('docs/linux_repositories.html', contains) def test_menus(self): contains = [ + ('File', 'Action.sublime-menu'), + ('File', 'Advanced Commit.sublime-menu'), + ('File', 'Branch Folder.sublime-menu'), + ('File', 'Branch Section.sublime-menu'), + ('File', 'Branch.sublime-menu'), + ('File', 'Commit.sublime-menu'), + ('File', 'Diff Context.sublime-menu'), + ('File', 'File Mode Context.sublime-menu'), + ('File', 'File.sublime-menu'), + ('File', 'Hunk.sublime-menu'), + ('File', 'Index File.sublime-menu'), + ('File', 'Main.sublime-menu'), + ('File', 'Modified File.sublime-menu'), + ('File', 'Remote Branch Folder.sublime-menu'), + ('File', 'Remote Branch.sublime-menu'), + ('File', 'Remote Section.sublime-menu'), + ('File', 'Remote Tag.sublime-menu'), + ('File', 'Remote.sublime-menu'), + ('File', 'Stash Section.sublime-menu'), + ('File', 'Stash.sublime-menu'), + ('File', 'Submodule Section.sublime-menu'), + ('File', 'Submodule.sublime-menu'), + ('File', 'Tag Section.sublime-menu'), + ('File', 'Tag.sublime-menu'), + ('File', 'Unmerged File.sublime-menu'), + ('File', 'Untracked File.sublime-menu'), + ('File', 'Widget Context.sublime-menu'), ('Guide', 'Menus'), + ('Section', 'Adding to Submenus'), + ('Section', 'Available Menus and Variables'), + ('Section', 'Customization'), ('Section', 'Entries'), - ('File', 'Action.sublime-menu'), + ('Section', 'Example'), + ('Setting', '"args"'), + ('Setting', '"caption"'), + ('Setting', '"children"'), + ('Setting', '"command"'), + ('Setting', '"id"'), ('Setting', '"mnemonic"'), + ('Setting', '"platform"'), + ('Variable', '$commit'), ('Variable', '$git_dir'), + ('Variable', '$head'), + ('Variable', '$head_ref'), + ('Variable', '$short_commit'), + ('Variable', '$working_dir'), ] self._test_a_doc_page_index('docs/menus.html', contains) + def test_minihtml(self): + contains = [ + ('Guide', 'minihtml Reference'), + ('Section', 'CSS'), + ('Variable', 'var(--accent)'), + ('Variable', 'var(--background)'), + ('Variable', 'var(--bluish)'), + ('Variable', 'var(--cyanish)'), + ('Variable', 'var(--foreground)'), + ('Variable', 'var(--greenish)'), + ('Variable', 'var(--orangish)'), + ('Variable', 'var(--pinkish)'), + ('Variable', 'var(--purplish)'), + ('Variable', 'var(--redish)'), + ('Variable', 'var(--yellowish)'), + ] + self._test_a_doc_page_index('docs/minihtml.html', contains) + def test_packages(self): contains = [ - ('Guide', 'Packages'), - ('Section', 'Package Directories'), + ('File', '%APPDATA%\\Sublime Merge\\'), ('File', '%APPDATA%\\Sublime Merge\\Installed Packages\\'), + ('File', '%APPDATA%\\Sublime Merge\\Packages\\'), + ('File', '%~/.config/sublime-merge/Installed Packages/'), + ('File', '/Applications/Sublime Merge.app/Contents/MacOS/Packages/'), + ('File', '/opt/sublime_merge/Packages/'), + ('File', 'C:\\Program Files\\Sublime Merge\\Packages\\'), + ('File', '~/.config/sublime-merge/'), + ('File', '~/.config/sublime-merge/Packages/'), + ('File', '~/Library/Application Support/Sublime Merge/'), ('File', '~/Library/Application Support/Sublime Merge/Installed Packages/'), + ('File', '~/Library/Application Support/Sublime Merge/Packages/'), + ('Guide', 'Packages'), + ('Section', 'Installing Packages'), + ('Section', 'Package Directories'), + ('Section', 'Zipped Package Files'), ] self._test_a_doc_page_index('docs/packages.html', contains) - def test_minihtml(self): + def test_themes(self): contains = [ - ('Guide', 'minihtml Reference'), - ('Section', 'CSS'), - ('Variable', 'var(--greenish)'), + ('Attribute', 'checked'), + ('Attribute', 'confirm'), + ('Attribute', 'dark'), + ('Attribute', 'expandable'), + ('Attribute', 'expanded'), + ('Attribute', 'file_dark'), + ('Attribute', 'file_light'), + ('Attribute', 'file_medium'), + ('Attribute', 'file_medium_dark'), + ('Attribute', 'highlighted'), + ('Attribute', 'horizontal'), + ('Attribute', 'hover'), + ('Attribute', 'pressed'), + ('Attribute', 'selectable'), + ('Attribute', 'selected'), + ('Element', 'annotation_with_icon_row'), + ('Element', 'author_label'), + ('Element', 'auto_complete'), + ('Element', 'auto_complete_label'), + ('Element', 'blame_commit_summary'), + ('Element', 'blame_text_control'), + ('Element', 'branch_stat'), + ('Element', 'branch_stat_label'), + ('Element', 'branch_stat_meta'), + ('Element', 'branch_stats_meta'), + ('Element', 'button_control all_button'), + ('Element', 'button_control icon_button close_refs_filter'), + ('Element', 'button_control icon_button file_button'), + ('Element', 'button_control icon_button search_close'), + ('Element', 'button_control icon_button search_history_dropdown'), + ('Element', 'button_control icon_button search_refs'), + ('Element', 'button_control icon_button transparent'), + ('Element', 'button_control icon_button'), + ('Element', 'button_control'), + ('Element', 'button_control_left'), + ('Element', 'button_control_right'), + ('Element', 'checkbox_box_control'), + ('Element', 'checkbox_control'), + ('Element', 'close_button_control'), + ('Element', 'command_history_container'), + ('Element', 'command_history_label'), + ('Element', 'command_table'), + ('Element', 'command_table_container command_history'), + ('Element', 'commit_annotation'), + ('Element', 'commit_annotation_container'), + ('Element', 'commit_annotations'), + ('Element', 'commit_author_container'), + ('Element', 'commit_button'), + ('Element', 'commit_buttons'), + ('Element', 'commit_details_header'), + ('Element', 'commit_dialog_header'), + ('Element', 'commit_dialog_section_container'), + ('Element', 'commit_dialog_summary_container'), + ('Element', 'commit_edges_control'), + ('Element', 'commit_file_name_label'), + ('Element', 'commit_file_path_label'), + ('Element', 'commit_message_container'), + ('Element', 'commit_metadata_container'), + ('Element', 'commit_metadata_standin'), + ('Element', 'commit_summary_control'), + ('Element', 'commit_table'), + ('Element', 'commit_table_container'), + ('Element', 'commit_table_row'), + ('Element', 'condensed_branch_annotation'), + ('Element', 'condensed_branch_annotation_container'), + ('Element', 'condensed_branch_icon'), + ('Element', 'console_panel'), + ('Element', 'deleted_annotation'), + ('Element', 'details_panel'), + ('Element', 'details_tab_bar'), + ('Element', 'dialog'), + ('Element', 'diff scroll_area_control'), + ('Element', 'diff_text_control'), + ('Element', 'disclosure_button_control'), + ('Element', 'diverged_button_container'), + ('Element', 'diverged_container'), + ('Element', 'edit_button_container'), + ('Element', 'eliding_label_control'), + ('Element', 'expand_all_diff_control'), + ('Element', 'failed_label'), + ('Element', 'field_name_label'), + ('Element', 'file_annotation'), + ('Element', 'file_badge'), + ('Element', 'file_badge_split_container'), + ('Element', 'file_diff_control'), + ('Element', 'file_diff_header'), + ('Element', 'file_diff_hunk_container'), + ('Element', 'file_diff_hunk_header'), + ('Element', 'file_icon'), + ('Element', 'file_icons'), + ('Element', 'file_meta'), + ('Element', 'focus_highlight_control'), + ('Element', 'git_output_button'), + ('Element', 'git_output_data_container'), + ('Element', 'header'), + ('Element', 'hint_control'), + ('Element', 'hint_label'), + ('Element', 'hint_stem'), + ('Element', 'hunk_button'), + ('Element', 'hunk_description_container'), + ('Element', 'hunk_label_container'), + ('Element', 'icon_ahead'), + ('Element', 'icon_back'), + ('Element', 'icon_behind'), + ('Element', 'icon_cancel'), + ('Element', 'icon_created'), + ('Element', 'icon_deleted'), + ('Element', 'icon_dropdown_button'), + ('Element', 'icon_filter'), + ('Element', 'icon_folder'), + ('Element', 'icon_forward'), + ('Element', 'icon_hidden'), + ('Element', 'icon_location_bar'), + ('Element', 'icon_more'), + ('Element', 'icon_options_dropdown'), + ('Element', 'icon_pop_stash'), + ('Element', 'icon_pull'), + ('Element', 'icon_push'), + ('Element', 'icon_recent'), + ('Element', 'icon_search'), + ('Element', 'icon_section_actions'), + ('Element', 'icon_side_bar'), + ('Element', 'icon_staged'), + ('Element', 'icon_stash'), + ('Element', 'icon_text'), + ('Element', 'icon_uninitialized_submodule'), + ('Element', 'icon_unmerged'), + ('Element', 'icon_visible'), + ('Element', 'image_diff_container'), + ('Element', 'image_diff_control'), + ('Element', 'image_dimensions_container'), + ('Element', 'image_metadata_label'), + ('Element', 'index_action_label'), + ('Element', 'index_files_label'), + ('Element', 'info_area'), + ('Element', 'info_area_line'), + ('Element', 'inserted_annotation'), + ('Element', 'label_control bad_signature'), + ('Element', 'label_control commit_author'), + ('Element', 'label_control good_signature'), + ('Element', 'label_control merge_helper_help_text_label'), + ('Element', 'label_control merge_helper_highlight_label'), + ('Element', 'label_control'), + ('Element', 'loading'), + ('Element', 'location_bar_branch_row'), + ('Element', 'location_bar_container'), + ('Element', 'location_bar_heading'), + ('Element', 'location_bar_label'), + ('Element', 'location_bar_row'), + ('Element', 'location_bar_tree'), + ('Element', 'merge_helper_buttons_container'), + ('Element', 'merge_helper_container'), + ('Element', 'merge_options_container'), + ('Element', 'message_label'), + ('Element', 'mini_quick_panel_row'), + ('Element', 'new_tab_button'), + ('Element', 'new_tab_icon'), + ('Element', 'onion_skin_slider'), + ('Element', 'open_new_repository_buttons_container'), + ('Element', 'overlay_control'), + ('Element', 'popup_control auto_complete_popup'), + ('Element', 'preference_help_text_label'), + ('Element', 'preference_text_input_container'), + ('Element', 'preference_title_label'), + ('Element', 'preference_wrapper'), + ('Element', 'preferences_buttons_container'), + ('Element', 'preferences_overlay_left'), + ('Element', 'preferences_overlay_right'), + ('Element', 'preferences_section_label'), + ('Element', 'preferences_section_table'), + ('Element', 'progress_bar_control'), + ('Element', 'progress_gauge_control'), + ('Element', 'puck_control'), + ('Element', 'quick_panel'), + ('Element', 'quick_panel_label command'), + ('Element', 'quick_panel_label hint'), + ('Element', 'quick_panel_label keybinding'), + ('Element', 'quick_panel_label preview'), + ('Element', 'quick_panel_label'), + ('Element', 'quick_panel_path_label'), + ('Element', 'quick_panel_row'), + ('Element', 'radio_button_list_control'), + ('Element', 'recent_commit_messages icon_options_dropdown'), + ('Element', 'recent_commit_messages_dropdown_container'), + ('Element', 'recent_repository_button'), + ('Element', 'recent_repository_row'), + ('Element', 'recently_modified'), + ('Element', 'ref_filter_input_container'), + ('Element', 'repository_tab_label_container'), + ('Element', 'root_tabs'), + ('Element', 'scroll_area_control'), + ('Element', 'scroll_bar_control'), + ('Element', 'scroll_corner_control'), + ('Element', 'scroll_track_control'), + ('Element', 'search_dialog'), + ('Element', 'search_help'), + ('Element', 'search_message'), + ('Element', 'search_text_control'), + ('Element', 'searching'), + ('Element', 'separator'), + ('Element', 'separator_container'), + ('Element', 'side_bar_container'), + ('Element', 'side_bar_tabs'), + ('Element', 'side_by_side_and_metadata_container'), + ('Element', 'side_by_side_image_container'), + ('Element', 'split_commit_button'), + ('Element', 'stash_annotation'), + ('Element', 'submodule_annotation'), + ('Element', 'submodule_light_annotation'), + ('Element', 'submodule_stat'), + ('Element', 'subtitle_label_control'), + ('Element', 'tab_body_container'), + ('Element', 'tab_close_button'), + ('Element', 'tab_control'), + ('Element', 'tab_dropdown_button'), + ('Element', 'tab_label'), + ('Element', 'tab_select_dropdown_icon'), + ('Element', 'tab_separator'), + ('Element', 'tab_separator_container'), + ('Element', 'table_of_contents_heading'), + ('Element', 'table_of_contents_heading_container'), + ('Element', 'table_of_contents_icon'), + ('Element', 'table_of_contents_icon_wrapper'), + ('Element', 'table_of_contents_label'), + ('Element', 'table_of_contents_row_container'), + ('Element', 'table_of_contents_style_container'), + ('Element', 'table_of_contents_style_selector'), + ('Element', 'table_of_contents_tree'), + ('Element', 'table_row'), + ('Element', 'tabset_control'), + ('Element', 'tag_annotation'), + ('Element', 'tag_annotation_container'), + ('Element', 'tag_annotation_icon'), + ('Element', 'terminator'), + ('Element', 'terminator_container'), + ('Element', 'text_line_control'), + ('Element', 'time_label'), + ('Element', 'title_label_control'), + ('Element', 'toggle_button'), + ('Element', 'toggle_diverged_banner_button'), + ('Element', 'tool_tip_control'), + ('Element', 'tool_tip_label_control'), + ('Element', 'total_untracked'), + ('Element', 'tree'), + ('Element', 'tree_details'), + ('Element', 'tree_row'), + ('Element', 'use_hunk_button'), + ('Element', 'welcome_overlay'), + ('Element', 'welcome_overlay_contents'), + ('Guide', 'Themes'), + ('Property', 'background_color'), + ('Property', 'bg'), + ('Property', 'border_color'), + ('Property', 'border_radius'), + ('Property', 'border_width'), + ('Property', 'bottom_shadow'), + ('Property', 'bottom_shadow_size'), + ('Property', 'box_margin'), + ('Property', 'case'), + ('Property', 'checkerboard_alt_bg'), + ('Property', 'checkerboard_main_bg'), + ('Property', 'close_button_side'), + ('Property', 'color'), + ('Property', 'color0 ... color19'), + ('Property', 'color0 ... color7'), + ('Property', 'color_scheme_tint'), + ('Property', 'color_scheme_tint_2'), + ('Property', 'content_margin'), + ('Property', 'dark_content'), + ('Property', 'fg'), + ('Property', 'fg_blend'), + ('Property', 'font.bold'), + ('Property', 'font.face'), + ('Property', 'font.italic'), + ('Property', 'font.size'), + ('Property', 'frame_time'), + ('Property', 'headline_color'), + ('Property', 'highlight_border_color'), + ('Property', 'highlight_color'), + ('Property', 'highlight_time'), + ('Property', 'hit_test_level'), + ('Property', 'icon_spacing'), + ('Property', 'indent'), + ('Property', 'indent_offset'), + ('Property', 'indent_top_level'), + ('Property', 'interpolation'), + ('Property', 'keyframes'), + ('Property', 'layer#.draw_center'), + ('Property', 'layer#.inner_margin'), + ('Property', 'layer#.opacity'), + ('Property', 'layer#.repeat'), + ('Property', 'layer#.texture'), + ('Property', 'layer#.tint'), + ('Property', 'layer0.*'), + ('Property', 'layer1.*'), + ('Property', 'layer2.*'), + ('Property', 'layer3.*'), + ('Property', 'left_shadow'), + ('Property', 'left_shadow_size'), + ('Property', 'line_selection_border_color'), + ('Property', 'line_selection_border_radius'), + ('Property', 'line_selection_border_width'), + ('Property', 'line_selection_color'), + ('Property', 'line_width'), + ('Property', 'link_color'), + ('Property', 'loop'), + ('Property', 'match_fg'), + ('Property', 'max_margin_trim'), + ('Property', 'max_width'), + ('Property', 'message_content_margin'), + ('Property', 'min_size'), + ('Property', 'mouse_wheel_switch'), + ('Property', 'num_colors'), + ('Property', 'num_unique_columns'), + ('Property', 'overlay'), + ('Property', 'puck_border_color'), + ('Property', 'puck_color'), + ('Property', 'right_shadow'), + ('Property', 'right_shadow_size'), + ('Property', 'row_padding'), + ('Property', 'selected_fg'), + ('Property', 'selected_match_fg'), + ('Property', 'shadow_color'), + ('Property', 'shadow_offset'), + ('Property', 'spacer_rows'), + ('Property', 'spacing'), + ('Property', 'speed'), + ('Property', 'tab_height'), + ('Property', 'tab_min_width'), + ('Property', 'tab_overlap'), + ('Property', 'tab_width'), + ('Property', 'target'), + ('Property', 'tint_index'), + ('Property', 'tint_modifier'), + ('Property', 'top_shadow'), + ('Property', 'top_shadow_size'), + ('Property', 'track_color'), + ('Section', 'Attributes'), + ('Section', 'Colors'), + ('Section', 'Customization'), + ('Section', 'Elements'), + ('Section', 'Example'), + ('Section', 'General Information'), + ('Section', 'Properties'), + ('Section', 'Settings'), + ('Section', 'Terminology'), + ('Section', 'Variables'), + ('Setting', 'overlay_scroll_bars'), ] - self._test_a_doc_page_index('docs/minihtml.html', contains) + self._test_a_doc_page_index('docs/themes.html', contains) + ### ('Attribute', 'dark'), was found 4 times + ### ('Attribute', 'expandable'), was found 3 times + ### ('Attribute', 'expanded'), was found 4 times + ### ('Attribute', 'horizontal'), was found 3 times + ### ('Attribute', 'selectable'), was found 3 times + ### ('Attribute', 'selected'), was found 8 times + ### ('Element', 'button_control'), was found 2 times + ### ('Property', 'background_color'), was found 3 times + ### ('Property', 'bg'), was found 4 times + ### ('Property', 'color'), was found 10 times + ### ('Property', 'content_margin'), was found 13 times + ### ('Property', 'fg'), was found 6 times + ### ('Property', 'font.face'), was found 2 times + ### ('Property', 'font.size'), was found 2 times + ### ('Property', 'headline_color'), was found 2 times + ### ('Property', 'link_color'), was found 2 times + ### ('Property', 'message_content_margin'), was found 3 times + ### ('Property', 'num_colors'), was found 2 times + ### ('Property', 'tint_index'), was found 2 times + ### ('Property', 'tint_modifier'), was found 2 times class SublimeTextDocsetTestCase(DocsetTestCaseBase): NAME = 'sublime-text.docset' - def test_home(self): + def test_api_environments(self): contains = [ - ('Guide', 'Documentation'), + ('Guide', 'API Environments'), + ('Section', 'Modules'), + ('Section', 'Overview'), + ('Section', 'Pre-Installed Packages'), + ('Section', 'Python Version'), + ] + self._test_a_doc_page_index('docs/api_environments.html', contains) + + def test_api_reference(self): + contains = [ + ('Attribute', 'sublime.AutoCompleteFlags.INHIBIT_EXPLICIT_COMPLETIONS'), + ('Attribute', 'sublime.AutoCompleteFlags.INHIBIT_WORD_COMPLETIONS'), + ('Attribute', 'sublime.AutoCompleteFlags.NONE'), + ('Attribute', 'sublime.CompletionItem.annotation'), + ('Attribute', 'sublime.CompletionItem.completion'), + ('Attribute', 'sublime.CompletionItem.completion_format'), + ('Attribute', 'sublime.CompletionItem.kind'), + ('Attribute', 'sublime.CompletionItem.trigger'), + ('Attribute', 'sublime.ContextStackFrame.context_name'), + ('Attribute', 'sublime.ContextStackFrame.source_file'), + ('Attribute', 'sublime.ContextStackFrame.source_location'), + ('Attribute', 'sublime.DialogResult.CANCEL'), + ('Attribute', 'sublime.DialogResult.NO'), + ('Attribute', 'sublime.DialogResult.YES'), + ('Attribute', 'sublime.FindFlags.IGNORECASE'), + ('Attribute', 'sublime.FindFlags.LITERAL'), + ('Attribute', 'sublime.FindFlags.NONE'), + ('Attribute', 'sublime.HistoricPosition.col'), + ('Attribute', 'sublime.HistoricPosition.pt'), + ('Attribute', 'sublime.HistoricPosition.row'), + ('Attribute', 'sublime.HoverZone.GUTTER'), + ('Attribute', 'sublime.HoverZone.MARGIN'), + ('Attribute', 'sublime.HoverZone.TEXT'), + ('Attribute', 'sublime.KindId.AMBIGUOUS'), + ('Attribute', 'sublime.KindId.COLOR_BLUISH'), + ('Attribute', 'sublime.KindId.COLOR_CYANISH'), + ('Attribute', 'sublime.KindId.COLOR_DARK'), + ('Attribute', 'sublime.KindId.COLOR_GREENISH'), + ('Attribute', 'sublime.KindId.COLOR_LIGHT'), + ('Attribute', 'sublime.KindId.COLOR_ORANGISH'), + ('Attribute', 'sublime.KindId.COLOR_PINKISH'), + ('Attribute', 'sublime.KindId.COLOR_PURPLISH'), + ('Attribute', 'sublime.KindId.COLOR_REDISH'), + ('Attribute', 'sublime.KindId.COLOR_YELLOWISH'), + ('Attribute', 'sublime.KindId.FUNCTION'), + ('Attribute', 'sublime.KindId.KEYWORD'), + ('Attribute', 'sublime.KindId.MARKUP'), + ('Attribute', 'sublime.KindId.NAMESPACE'), + ('Attribute', 'sublime.KindId.NAVIGATION'), + ('Attribute', 'sublime.KindId.SNIPPET'), + ('Attribute', 'sublime.KindId.TYPE'), + ('Attribute', 'sublime.KindId.VARIABLE'), + ('Attribute', 'sublime.ListInputItem.annotation'), + ('Attribute', 'sublime.ListInputItem.details'), + ('Attribute', 'sublime.ListInputItem.kind'), + ('Attribute', 'sublime.ListInputItem.text'), + ('Attribute', 'sublime.ListInputItem.value'), + ('Attribute', 'sublime.NewFileFlags.ENCODED_POSITION'), + ('Attribute', 'sublime.NewFileFlags.FORCE_CLONE'), + ('Attribute', 'sublime.NewFileFlags.FORCE_GROUP'), + ('Attribute', 'sublime.NewFileFlags.NONE'), + ('Attribute', 'sublime.NewFileFlags.TRANSIENT'), + ('Attribute', 'sublime.Phantom.content'), + ('Attribute', 'sublime.Phantom.layout'), + ('Attribute', 'sublime.Phantom.on_navigate'), + ('Attribute', 'sublime.Phantom.region'), + ('Attribute', 'sublime.PhantomLayout.BELOW'), + ('Attribute', 'sublime.PhantomLayout.BLOCK'), + ('Attribute', 'sublime.PhantomLayout.INLINE'), + ('Attribute', 'sublime.PhantomSet.key'), + ('Attribute', 'sublime.PhantomSet.view'), + ('Attribute', 'sublime.PointClassification.EMPTY_LINE'), + ('Attribute', 'sublime.PointClassification.LINE_END'), + ('Attribute', 'sublime.PointClassification.LINE_START'), + ('Attribute', 'sublime.PointClassification.NONE'), + ('Attribute', 'sublime.PointClassification.PUNCTUATION_END'), + ('Attribute', 'sublime.PointClassification.PUNCTUATION_START'), + ('Attribute', 'sublime.PointClassification.SUB_WORD_END'), + ('Attribute', 'sublime.PointClassification.SUB_WORD_START'), + ('Attribute', 'sublime.PointClassification.WORD_END'), + ('Attribute', 'sublime.PointClassification.WORD_START'), + ('Attribute', 'sublime.PopupFlags.COOPERATE_WITH_AUTO_COMPLETE'), + ('Attribute', 'sublime.PopupFlags.HIDE_ON_MOUSE_MOVE'), + ('Attribute', 'sublime.PopupFlags.HIDE_ON_MOUSE_MOVE_AWAY'), + ('Attribute', 'sublime.PopupFlags.NONE'), + ('Attribute', 'sublime.QueryOperator.EQUAL'), + ('Attribute', 'sublime.QueryOperator.NOT_EQUAL'), + ('Attribute', 'sublime.QueryOperator.NOT_REGEX_CONTAINS'), + ('Attribute', 'sublime.QueryOperator.NOT_REGEX_MATCH'), + ('Attribute', 'sublime.QueryOperator.REGEX_CONTAINS'), + ('Attribute', 'sublime.QueryOperator.REGEX_MATCH'), + ('Attribute', 'sublime.QuickPanelFlags.KEEP_OPEN_ON_FOCUS_LOST'), + ('Attribute', 'sublime.QuickPanelFlags.MONOSPACE_FONT'), + ('Attribute', 'sublime.QuickPanelFlags.NONE'), + ('Attribute', 'sublime.QuickPanelItem.annotation'), + ('Attribute', 'sublime.QuickPanelItem.details'), + ('Attribute', 'sublime.QuickPanelItem.kind'), + ('Attribute', 'sublime.QuickPanelItem.trigger'), + ('Attribute', 'sublime.Region.a'), + ('Attribute', 'sublime.Region.b'), + ('Attribute', 'sublime.Region.xpos'), + ('Attribute', 'sublime.RegionFlags.DRAW_EMPTY'), + ('Attribute', 'sublime.RegionFlags.DRAW_EMPTY_AS_OVERWRITE'), + ('Attribute', 'sublime.RegionFlags.DRAW_NO_FILL'), + ('Attribute', 'sublime.RegionFlags.DRAW_NO_OUTLINE'), + ('Attribute', 'sublime.RegionFlags.DRAW_SOLID_UNDERLINE'), + ('Attribute', 'sublime.RegionFlags.DRAW_SQUIGGLY_UNDERLINE'), + ('Attribute', 'sublime.RegionFlags.DRAW_STIPPLED_UNDERLINE'), + ('Attribute', 'sublime.RegionFlags.HIDDEN'), + ('Attribute', 'sublime.RegionFlags.HIDE_ON_MINIMAP'), + ('Attribute', 'sublime.RegionFlags.NONE'), + ('Attribute', 'sublime.RegionFlags.NO_UNDO'), + ('Attribute', 'sublime.RegionFlags.PERSISTENT'), + ('Attribute', 'sublime.SymbolLocation.col'), + ('Attribute', 'sublime.SymbolLocation.display_name'), + ('Attribute', 'sublime.SymbolLocation.kind'), + ('Attribute', 'sublime.SymbolLocation.path'), + ('Attribute', 'sublime.SymbolLocation.row'), + ('Attribute', 'sublime.SymbolLocation.syntax'), + ('Attribute', 'sublime.SymbolLocation.type'), + ('Attribute', 'sublime.SymbolRegion.kind'), + ('Attribute', 'sublime.SymbolRegion.name'), + ('Attribute', 'sublime.SymbolRegion.region'), + ('Attribute', 'sublime.SymbolRegion.syntax'), + ('Attribute', 'sublime.SymbolRegion.type'), + ('Attribute', 'sublime.Syntax.hidden'), + ('Attribute', 'sublime.Syntax.name'), + ('Attribute', 'sublime.Syntax.path'), + ('Attribute', 'sublime.Syntax.scope'), + ('Attribute', 'sublime.TextChange.a'), + ('Attribute', 'sublime.TextChange.b'), + ('Attribute', 'sublime_plugin.TextCommand.view'), + ('Attribute', 'sublime_plugin.WindowCommand.window'), + ('Class', 'sublime.AutoCompleteFlags'), + ('Class', 'sublime.Buffer'), + ('Class', 'sublime.CompletionFormat'), + ('Class', 'sublime.CompletionItem'), + ('Class', 'sublime.CompletionList'), + ('Class', 'sublime.ContextStackFrame'), + ('Class', 'sublime.DialogResult'), + ('Class', 'sublime.Edit'), + ('Class', 'sublime.FindFlags'), + ('Class', 'sublime.HistoricPosition'), + ('Class', 'sublime.HoverZone'), + ('Class', 'sublime.Html'), + ('Class', 'sublime.HtmlSheet'), + ('Class', 'sublime.ImageSheet'), + ('Class', 'sublime.KindId'), + ('Class', 'sublime.ListInputItem'), + ('Class', 'sublime.NewFileFlags'), + ('Class', 'sublime.Phantom'), + ('Class', 'sublime.PhantomLayout'), + ('Class', 'sublime.PhantomSet'), + ('Class', 'sublime.PointClassification'), + ('Class', 'sublime.PopupFlags'), + ('Class', 'sublime.QueryOperator'), + ('Class', 'sublime.QuickPanelFlags'), + ('Class', 'sublime.QuickPanelItem'), + ('Class', 'sublime.Region'), + ('Class', 'sublime.RegionFlags'), + ('Class', 'sublime.Selection'), + ('Class', 'sublime.Settings'), + ('Class', 'sublime.Sheet'), + ('Class', 'sublime.SymbolLocation'), + ('Class', 'sublime.SymbolRegion'), + ('Class', 'sublime.SymbolSource'), + ('Class', 'sublime.SymbolType'), + ('Class', 'sublime.Syntax'), + ('Class', 'sublime.TextChange'), + ('Class', 'sublime.TextSheet'), + ('Class', 'sublime.View'), + ('Class', 'sublime.Window'), + ('Class', 'sublime_plugin.ApplicationCommand'), + ('Class', 'sublime_plugin.BackInputHandler'), + ('Class', 'sublime_plugin.Command'), + ('Class', 'sublime_plugin.CommandInputHandler'), + ('Class', 'sublime_plugin.EventListener'), + ('Class', 'sublime_plugin.ListInputHandler'), + ('Class', 'sublime_plugin.TextChangeListener'), + ('Class', 'sublime_plugin.TextCommand'), + ('Class', 'sublime_plugin.TextInputHandler'), + ('Class', 'sublime_plugin.ViewEventListener'), + ('Class', 'sublime_plugin.WindowCommand'), + ('Function', 'sublime.active_window'), + ('Function', 'sublime.arch'), + ('Function', 'sublime.cache_path'), + ('Function', 'sublime.channel'), + ('Function', 'sublime.decode_value'), + ('Function', 'sublime.encode_value'), + ('Function', 'sublime.error_message'), + ('Function', 'sublime.executable_hash'), + ('Function', 'sublime.executable_path'), + ('Function', 'sublime.expand_variables'), + ('Function', 'sublime.find_resources'), + ('Function', 'sublime.find_syntax_by_name'), + ('Function', 'sublime.find_syntax_by_scope'), + ('Function', 'sublime.find_syntax_for_file'), + ('Function', 'sublime.get_clipboard'), + ('Function', 'sublime.get_macro'), + ('Function', 'sublime.installed_packages_path'), + ('Function', 'sublime.list_syntaxes'), + ('Function', 'sublime.load_binary_resource'), + ('Function', 'sublime.load_resource'), + ('Function', 'sublime.load_settings'), + ('Function', 'sublime.log_build_systems'), + ('Function', 'sublime.log_commands'), + ('Function', 'sublime.log_indexing'), + ('Function', 'sublime.log_input'), + ('Function', 'sublime.log_result_regex'), + ('Function', 'sublime.message_dialog'), + ('Function', 'sublime.ok_cancel_dialog'), + ('Function', 'sublime.packages_path'), + ('Function', 'sublime.platform'), + ('Function', 'sublime.run_command'), + ('Function', 'sublime.save_settings'), + ('Function', 'sublime.score_selector'), + ('Function', 'sublime.set_clipboard'), + ('Function', 'sublime.set_timeout'), + ('Function', 'sublime.set_timeout_async'), + ('Function', 'sublime.status_message'), + ('Function', 'sublime.syntax_from_path'), + ('Function', 'sublime.version'), + ('Function', 'sublime.windows'), + ('Function', 'sublime.yes_no_cancel_dialog'), + ('Guide', 'API Reference'), + ('Method', 'sublime.Buffer.primary_view'), + ('Method', 'sublime.Buffer.views'), + ('Method', 'sublime.CompletionItem.command_completion'), + ('Method', 'sublime.CompletionItem.snippet_completion'), + ('Method', 'sublime.CompletionList.__init__'), + ('Method', 'sublime.CompletionList.set_completions'), + ('Method', 'sublime.HtmlSheet.set_contents'), + ('Method', 'sublime.HtmlSheet.set_name'), + ('Method', 'sublime.Phantom.to_tuple'), + ('Method', 'sublime.PhantomSet.__init__'), + ('Method', 'sublime.PhantomSet.update'), + ('Method', 'sublime.Region.__len__'), + ('Method', 'sublime.Region.begin'), + ('Method', 'sublime.Region.contains'), + ('Method', 'sublime.Region.cover'), + ('Method', 'sublime.Region.empty'), + ('Method', 'sublime.Region.end'), + ('Method', 'sublime.Region.intersection'), + ('Method', 'sublime.Region.intersects'), + ('Method', 'sublime.Region.size'), + ('Method', 'sublime.Selection.__delitem__'), + ('Method', 'sublime.Selection.__getitem__'), + ('Method', 'sublime.Selection.__len__'), + ('Method', 'sublime.Selection.add'), + ('Method', 'sublime.Selection.add_all'), + ('Method', 'sublime.Selection.clear'), + ('Method', 'sublime.Selection.contains'), + ('Method', 'sublime.Selection.is_valid'), + ('Method', 'sublime.Selection.subtract'), + ('Method', 'sublime.Settings.add_on_change'), + ('Method', 'sublime.Settings.clear_on_change'), + ('Method', 'sublime.Settings.erase'), + ('Method', 'sublime.Settings.get'), + ('Method', 'sublime.Settings.has'), + ('Method', 'sublime.Settings.set'), + ('Method', 'sublime.Sheet.id'), + ('Method', 'sublime.Sheet.is_selected'), + ('Method', 'sublime.Sheet.view'), + ('Method', 'sublime.Sheet.window'), + ('Method', 'sublime.TextSheet.set_name'), + ('Method', 'sublime.View.add_regions'), + ('Method', 'sublime.View.assign_syntax'), + ('Method', 'sublime.View.buffer'), + ('Method', 'sublime.View.buffer_id'), + ('Method', 'sublime.View.change_count'), + ('Method', 'sublime.View.change_id'), + ('Method', 'sublime.View.classify'), + ('Method', 'sublime.View.clones'), + ('Method', 'sublime.View.close'), + ('Method', 'sublime.View.command_history'), + ('Method', 'sublime.View.em_width'), + ('Method', 'sublime.View.encoding'), + ('Method', 'sublime.View.erase'), + ('Method', 'sublime.View.erase_regions'), + ('Method', 'sublime.View.erase_status'), + ('Method', 'sublime.View.expand_by_class'), + ('Method', 'sublime.View.expand_to_scope'), + ('Method', 'sublime.View.extract_completions'), + ('Method', 'sublime.View.extract_scope'), + ('Method', 'sublime.View.extract_tokens_with_scopes'), + ('Method', 'sublime.View.file_name'), + ('Method', 'sublime.View.find'), + ('Method', 'sublime.View.find_all'), + ('Method', 'sublime.View.find_by_class'), + ('Method', 'sublime.View.find_by_selector'), + ('Method', 'sublime.View.fold'), + ('Method', 'sublime.View.folded_regions'), + ('Method', 'sublime.View.full_line'), + ('Method', 'sublime.View.get_regions'), + ('Method', 'sublime.View.get_status'), + ('Method', 'sublime.View.get_symbols'), + ('Method', 'sublime.View.hide_popup'), + ('Method', 'sublime.View.id'), + ('Method', 'sublime.View.insert'), + ('Method', 'sublime.View.is_auto_complete_visible'), + ('Method', 'sublime.View.is_dirty'), + ('Method', 'sublime.View.is_folded'), + ('Method', 'sublime.View.is_loading'), + ('Method', 'sublime.View.is_popup_visible'), + ('Method', 'sublime.View.is_primary'), + ('Method', 'sublime.View.is_read_only'), + ('Method', 'sublime.View.is_scratch'), + ('Method', 'sublime.View.is_valid'), + ('Method', 'sublime.View.layout_extent'), + ('Method', 'sublime.View.layout_to_text'), + ('Method', 'sublime.View.layout_to_window'), + ('Method', 'sublime.View.line'), + ('Method', 'sublime.View.line_endings'), + ('Method', 'sublime.View.line_height'), + ('Method', 'sublime.View.lines'), + ('Method', 'sublime.View.match_selector'), + ('Method', 'sublime.View.meta_info'), + ('Method', 'sublime.View.name'), + ('Method', 'sublime.View.overwrite_status'), + ('Method', 'sublime.View.replace'), + ('Method', 'sublime.View.reset_reference_document'), + ('Method', 'sublime.View.retarget'), + ('Method', 'sublime.View.rowcol'), + ('Method', 'sublime.View.run_command'), + ('Method', 'sublime.View.scope_name'), + ('Method', 'sublime.View.score_selector'), + ('Method', 'sublime.View.sel'), + ('Method', 'sublime.View.set_encoding'), + ('Method', 'sublime.View.set_line_endings'), + ('Method', 'sublime.View.set_name'), + ('Method', 'sublime.View.set_overwrite_status'), + ('Method', 'sublime.View.set_read_only'), + ('Method', 'sublime.View.set_reference_document'), + ('Method', 'sublime.View.set_scratch'), + ('Method', 'sublime.View.set_status'), + ('Method', 'sublime.View.set_syntax_file'), + ('Method', 'sublime.View.set_viewport_position'), + ('Method', 'sublime.View.settings'), + ('Method', 'sublime.View.show'), + ('Method', 'sublime.View.show_at_center'), + ('Method', 'sublime.View.show_popup'), + ('Method', 'sublime.View.show_popup_menu'), + ('Method', 'sublime.View.size'), + ('Method', 'sublime.View.split_by_newlines'), + ('Method', 'sublime.View.style_for_scope'), + ('Method', 'sublime.View.substr'), + ('Method', 'sublime.View.symbols'), + ('Method', 'sublime.View.syntax'), + ('Method', 'sublime.View.text_point'), + ('Method', 'sublime.View.text_point_utf16'), + ('Method', 'sublime.View.text_point_utf8'), + ('Method', 'sublime.View.text_to_layout'), + ('Method', 'sublime.View.text_to_window'), + ('Method', 'sublime.View.transform_region_from'), + ('Method', 'sublime.View.unfold'), + ('Method', 'sublime.View.update_popup'), + ('Method', 'sublime.View.viewport_extent'), + ('Method', 'sublime.View.viewport_position'), + ('Method', 'sublime.View.visible_region'), + ('Method', 'sublime.View.window'), + ('Method', 'sublime.View.window_to_layout'), + ('Method', 'sublime.View.window_to_text'), + ('Method', 'sublime.View.word'), + ('Method', 'sublime.Window.active_group'), + ('Method', 'sublime.Window.active_panel'), + ('Method', 'sublime.Window.active_sheet'), + ('Method', 'sublime.Window.active_sheet_in_group'), + ('Method', 'sublime.Window.active_view'), + ('Method', 'sublime.Window.active_view_in_group'), + ('Method', 'sublime.Window.bring_to_front'), + ('Method', 'sublime.Window.create_io_panel'), + ('Method', 'sublime.Window.create_output_panel'), + ('Method', 'sublime.Window.destroy_output_panel'), + ('Method', 'sublime.Window.extract_variables'), + ('Method', 'sublime.Window.file_history'), + ('Method', 'sublime.Window.find_io_panel'), + ('Method', 'sublime.Window.find_open_file'), + ('Method', 'sublime.Window.find_output_panel'), + ('Method', 'sublime.Window.focus_group'), + ('Method', 'sublime.Window.focus_sheet'), + ('Method', 'sublime.Window.focus_view'), + ('Method', 'sublime.Window.folders'), + ('Method', 'sublime.Window.get_layout'), + ('Method', 'sublime.Window.get_output_panel'), + ('Method', 'sublime.Window.get_sheet_index'), + ('Method', 'sublime.Window.get_tabs_visible'), + ('Method', 'sublime.Window.get_view_index'), + ('Method', 'sublime.Window.hwnd'), + ('Method', 'sublime.Window.id'), + ('Method', 'sublime.Window.is_menu_visible'), + ('Method', 'sublime.Window.is_minimap_visible'), + ('Method', 'sublime.Window.is_sidebar_visible'), + ('Method', 'sublime.Window.is_status_bar_visible'), + ('Method', 'sublime.Window.is_valid'), + ('Method', 'sublime.Window.layout'), + ('Method', 'sublime.Window.lookup_references_in_index'), + ('Method', 'sublime.Window.lookup_references_in_open_files'), + ('Method', 'sublime.Window.lookup_symbol_in_index'), + ('Method', 'sublime.Window.lookup_symbol_in_open_files'), + ('Method', 'sublime.Window.new_file'), + ('Method', 'sublime.Window.num_groups'), + ('Method', 'sublime.Window.num_sheets_in_group'), + ('Method', 'sublime.Window.num_views_in_group'), + ('Method', 'sublime.Window.open_file'), + ('Method', 'sublime.Window.panels'), + ('Method', 'sublime.Window.project_data'), + ('Method', 'sublime.Window.project_file_name'), + ('Method', 'sublime.Window.promote_sheet'), + ('Method', 'sublime.Window.run_command'), + ('Method', 'sublime.Window.set_layout'), + ('Method', 'sublime.Window.set_menu_visible'), + ('Method', 'sublime.Window.set_minimap_visible'), + ('Method', 'sublime.Window.set_project_data'), + ('Method', 'sublime.Window.set_sheet_index'), + ('Method', 'sublime.Window.set_sidebar_visible'), + ('Method', 'sublime.Window.set_status_bar_visible'), + ('Method', 'sublime.Window.set_tabs_visible'), + ('Method', 'sublime.Window.set_view_index'), + ('Method', 'sublime.Window.settings'), + ('Method', 'sublime.Window.sheets'), + ('Method', 'sublime.Window.sheets_in_group'), + ('Method', 'sublime.Window.show_input_panel'), + ('Method', 'sublime.Window.show_quick_panel'), + ('Method', 'sublime.Window.status_message'), + ('Method', 'sublime.Window.template_settings'), + ('Method', 'sublime.Window.transient_sheet_in_group'), + ('Method', 'sublime.Window.transient_view_in_group'), + ('Method', 'sublime.Window.views'), + ('Method', 'sublime.Window.views_in_group'), + ('Method', 'sublime_plugin.Command.description'), + ('Method', 'sublime_plugin.Command.is_checked'), + ('Method', 'sublime_plugin.Command.is_enabled'), + ('Method', 'sublime_plugin.Command.is_visible'), + ('Method', 'sublime_plugin.Command.name'), + ('Method', 'sublime_plugin.Command.run'), + ('Method', 'sublime_plugin.Command.want_event'), + ('Method', 'sublime_plugin.CommandInputHandler.cancel'), + ('Method', 'sublime_plugin.CommandInputHandler.confirm'), + ('Method', 'sublime_plugin.CommandInputHandler.initial_text'), + ('Method', 'sublime_plugin.CommandInputHandler.name'), + ('Method', 'sublime_plugin.CommandInputHandler.next_input'), + ('Method', 'sublime_plugin.CommandInputHandler.placeholder'), + ('Method', 'sublime_plugin.CommandInputHandler.preview'), + ('Method', 'sublime_plugin.CommandInputHandler.validate'), + ('Method', 'sublime_plugin.EventListener.on_activated'), + ('Method', 'sublime_plugin.EventListener.on_activated_async'), + ('Method', 'sublime_plugin.EventListener.on_clone'), + ('Method', 'sublime_plugin.EventListener.on_clone_async'), + ('Method', 'sublime_plugin.EventListener.on_close'), + ('Method', 'sublime_plugin.EventListener.on_deactivated'), + ('Method', 'sublime_plugin.EventListener.on_deactivated_async'), + ('Method', 'sublime_plugin.EventListener.on_hover'), + ('Method', 'sublime_plugin.EventListener.on_load'), + ('Method', 'sublime_plugin.EventListener.on_load_async'), + ('Method', 'sublime_plugin.EventListener.on_modified'), + ('Method', 'sublime_plugin.EventListener.on_modified_async'), + ('Method', 'sublime_plugin.EventListener.on_new'), + ('Method', 'sublime_plugin.EventListener.on_new_async'), + ('Method', 'sublime_plugin.EventListener.on_post_save'), + ('Method', 'sublime_plugin.EventListener.on_post_save_async'), + ('Method', 'sublime_plugin.EventListener.on_post_text_command'), + ('Method', 'sublime_plugin.EventListener.on_post_window_command'), + ('Method', 'sublime_plugin.EventListener.on_pre_close'), + ('Method', 'sublime_plugin.EventListener.on_pre_close_project'), + ('Method', 'sublime_plugin.EventListener.on_pre_save'), + ('Method', 'sublime_plugin.EventListener.on_pre_save_async'), + ('Method', 'sublime_plugin.EventListener.on_query_completions'), + ('Method', 'sublime_plugin.EventListener.on_query_context'), + ('Method', 'sublime_plugin.EventListener.on_selection_modified'), + ('Method', 'sublime_plugin.EventListener.on_selection_modified_async'), + ('Method', 'sublime_plugin.EventListener.on_text_command'), + ('Method', 'sublime_plugin.EventListener.on_window_command'), + ('Method', 'sublime_plugin.ListInputHandler.description'), + ('Method', 'sublime_plugin.ListInputHandler.list_items'), + ('Method', 'sublime_plugin.TextChangeListener.attach'), + ('Method', 'sublime_plugin.TextChangeListener.detach'), + ('Method', 'sublime_plugin.TextChangeListener.is_applicable'), + ('Method', 'sublime_plugin.TextChangeListener.is_attached'), + ('Method', 'sublime_plugin.TextChangeListener.on_reload'), + ('Method', 'sublime_plugin.TextChangeListener.on_reload_async'), + ('Method', 'sublime_plugin.TextChangeListener.on_revert'), + ('Method', 'sublime_plugin.TextChangeListener.on_revert_async'), + ('Method', 'sublime_plugin.TextChangeListener.on_text_changed'), + ('Method', 'sublime_plugin.TextCommand.run'), + ('Method', 'sublime_plugin.TextInputHandler.description'), + ('Method', 'sublime_plugin.ViewEventListener.applies_to_primary_view_only'), + ('Method', 'sublime_plugin.ViewEventListener.is_applicable'), + ('Method', 'sublime_plugin.ViewEventListener.on_activated'), + ('Method', 'sublime_plugin.ViewEventListener.on_activated_async'), + ('Method', 'sublime_plugin.ViewEventListener.on_deactivated'), + ('Method', 'sublime_plugin.ViewEventListener.on_deactivated_async'), + ('Method', 'sublime_plugin.ViewEventListener.on_hover'), + ('Method', 'sublime_plugin.ViewEventListener.on_modified'), + ('Method', 'sublime_plugin.ViewEventListener.on_modified_async'), + ('Method', 'sublime_plugin.ViewEventListener.on_post_text_command'), + ('Method', 'sublime_plugin.ViewEventListener.on_query_completions'), + ('Method', 'sublime_plugin.ViewEventListener.on_query_context'), + ('Method', 'sublime_plugin.ViewEventListener.on_selection_modified'), + ('Method', 'sublime_plugin.ViewEventListener.on_selection_modified_async'), + ('Module', 'sublime'), + ('Module', 'sublime_plugin'), + ('Section', 'General Information'), + ('Section', 'sublime Module'), + ('Section', 'sublime_plugin Module'), + ('Type', 'sublime.CommandArgs'), + ('Type', 'sublime.CompletionValue'), + ('Type', 'sublime.DIP'), + ('Type', 'sublime.Event'), + ('Type', 'sublime.Kind'), + ('Type', 'sublime.Point'), + ('Type', 'sublime.Value'), + ('Type', 'sublime.Vector'), + ] + self._test_a_doc_page_index('docs/api_reference.html', contains) + + def test_build_systems(self): + contains = [ + ('Guide', 'Build Systems'), + ('Option', 'cancel'), + ('Option', 'cmd'), + ('Option', 'encoding'), + ('Option', 'env'), + ('Option', 'file_patterns'), + ('Option', 'file_regex'), + ('Option', 'keyfiles'), + ('Option', 'line_regex'), + ('Option', 'linux'), + ('Option', 'osx'), + ('Option', 'path'), + ('Option', 'quiet'), + ('Option', 'selector'), + ('Option', 'shell_cmd'), + ('Option', 'syntax'), + ('Option', 'target'), + ('Option', 'variants'), + ('Option', 'windows'), + ('Option', 'word_wrap'), + ('Option', 'working_dir'), + ('Section', 'Advanced Example'), + ('Section', 'Basic Example'), + ('Section', 'Custom Options'), + ('Section', 'Options'), ('Section', 'Usage'), + ('Section', 'Variables'), + ('Section', 'exec Target Options'), + ('Variable', '$file'), + ('Variable', '$file_base_name'), + ('Variable', '$file_extension'), + ('Variable', '$file_name'), + ('Variable', '$file_path'), + ('Variable', '$folder'), + ('Variable', '$packages'), + ('Variable', '$platform'), + ('Variable', '$project'), + ('Variable', '$project_base_name'), + ('Variable', '$project_extension'), + ('Variable', '$project_name'), + ('Variable', '$project_path'), + ] + self._test_a_doc_page_index('docs/build_systems.html', contains) + + def test_color_schemes(self): + contains = [ + ('Function', 'HSL functional notation'), + ('Function', 'HSLA functional notation'), + ('Function', 'HWB functional notation'), + ('Function', 'Hex RGB'), + ('Function', 'Hex RGBA'), + ('Function', 'Named'), + ('Function', 'RGB functional notation'), + ('Function', 'RGBA functional notation'), + ('Function', 'alpha() adjuster'), + ('Function', 'blend() adjuster'), + ('Function', 'blenda() adjuster'), + ('Function', 'lightness() adjuster'), + ('Function', 'min-contrast() adjuster'), + ('Function', 'saturation() adjuster'), + ('Guide', 'Color Schemes'), + ('Section', 'Appendix: CSS Colors'), + ('Section', 'Colors'), ('Section', 'Customization'), - ('Section', 'Miscellaneous'), - ('Section', 'Package Development'), + ('Section', 'Example'), + ('Section', 'Global Settings'), + ('Section', 'Scope Rules'), + ('Section', 'Variables'), + ('Setting', 'accent'), + ('Setting', 'active_guide'), + ('Setting', 'background'), + ('Setting', 'bracket_contents_foreground'), + ('Setting', 'bracket_contents_options'), + ('Setting', 'brackets_foreground'), + ('Setting', 'brackets_options'), + ('Setting', 'caret'), + ('Setting', 'find_highlight'), + ('Setting', 'find_highlight_foreground'), + ('Setting', 'fold_marker'), + ('Setting', 'font_style'), + ('Setting', 'foreground'), + ('Setting', 'guide'), + ('Setting', 'gutter_foreground'), + ('Setting', 'highlight'), + ('Setting', 'inactive_selection'), + ('Setting', 'inactive_selection_foreground'), + ('Setting', 'invisibles'), + ('Setting', 'line_highlight'), + ('Setting', 'minimap_border'), + ('Setting', 'misspelling'), + ('Setting', 'name'), + ('Setting', 'phantom_css'), + ('Setting', 'popup_css'), + ('Setting', 'selection_border'), + ('Setting', 'selection_border_width'), + ('Setting', 'selection_corner_radius'), + ('Setting', 'selection_corner_style'), + ('Setting', 'selection_foreground'), + ('Setting', 'shadow'), + ('Setting', 'shadow_width'), + ('Setting', 'stack_guide'), + ('Setting', 'tags_foreground'), + ('Setting', 'tags_options'), + ('Value', 'bold'), + ('Value', 'foreground'), + ('Value', 'glow'), + ('Value', 'italic'), + ('Value', 'squiggly_underline'), + ('Value', 'stippled_underline'), + ('Value', 'underline'), ] - self._test_a_doc_page_index('docs/index.html', contains) + self._test_a_doc_page_index('docs/color_schemes.html', contains) + ### ('Setting', 'background'), was found 2 times + ### ('Setting', 'foreground'), was found 2 times + ### ('Setting', 'selection_foreground'), was found 2 times + ### ('Value', 'bold'), was found 2 times + ### ('Value', 'foreground'), was found 3 times + ### ('Value', 'italic'), was found 2 times + ### ('Value', 'squiggly_underline'), was found 4 times + ### ('Value', 'stippled_underline'), was found 4 times + ### ('Value', 'underline'), was found 4 times - def test_git_integration(self): + def test_color_schemes_tmtheme(self): contains = [ - ('Guide', 'Git Integration'), - ('Attribute', 'Staged Modification'), - ('Section', 'Diff Markers'), - ('Command', 'Open Git Repository…'), - ('Command', 'Sublime Merge: Folder History'), - ('Setting', 'show_git_status'), + ('Guide', '.tmTheme Color Schemes'), + ('Section', 'Appendix: X11 Colors'), + ('Section', 'Colors'), + ('Section', 'Example'), + ('Section', 'Global Settings'), + ('Section', 'Scope Styles'), ] - self._test_a_doc_page_index('docs/git_integration.html', contains) + self._test_a_doc_page_index('docs/color_schemes_tmtheme.html', contains) - def test_incremental_diff(self): + def test_column_selection(self): contains = [ - ('Guide', 'Incremental Diff'), - ('Section', 'Diff Markers'), - ('Tag', 'diff.inserted'), - ('Setting', 'mini_diff'), + ('Guide', 'Column Selection'), + ('Section', 'Using the Keyboard'), + ('Section', 'Using the Mouse'), ] - self._test_a_doc_page_index('docs/incremental_diff.html', contains) + self._test_a_doc_page_index('docs/column_selection.html', contains) - def test_indexing(self): + def test_command_line(self): contains = [ - ('Guide', 'Indexing'), - ('Section', 'Status'), - ('Setting', 'index_exclude_patterns'), + ('Guide', 'Command Line Interface'), + ('Section', 'Setup'), + ('Section', 'Usage'), ] - self._test_a_doc_page_index('docs/indexing.html', contains) + self._test_a_doc_page_index('docs/command_line.html', contains) def test_completions(self): contains = [ + ('Field', '"contents" string (REQUIRED)'), + ('Field', '"trigger" string (REQUIRED)'), + ('Field', 'contents'), + ('Field', 'description'), + ('Field', 'scope'), + ('Field', 'tabTrigger'), ('Guide', 'Completions'), ('Section', 'Completion Metadata'), + ('Section', 'Context-Aware Suggestions'), + ('Section', 'Customization'), + ('Section', 'Settings'), + ('Section', 'Usage'), + ('Setting', 'auto_complete'), + ('Setting', 'auto_complete_commit_on_tab'), + ('Setting', 'auto_complete_cycle'), ('Setting', 'auto_complete_delay'), - ('Field', 'tabTrigger'), - ('Value', 'Navigation'), + ('Setting', 'auto_complete_include_snippets_when_typing'), + ('Setting', 'auto_complete_selector'), + ('Setting', 'auto_complete_size_limit'), + ('Setting', 'auto_complete_triggers'), + ('Setting', 'auto_complete_use_history'), + ('Setting', 'auto_complete_with_fields'), + ('Setting', 'contents'), + ('Setting', 'tab_completion'), + ('Setting', 'trigger'), + ('Value', '"ambiguous"'), + ('Value', '"function"'), + ('Value', '"keyword"'), + ('Value', '"markup"'), + ('Value', '"namespace"'), ('Value', '"navigation"'), + ('Value', '"snippet"'), + ('Value', '"type"'), + ('Value', '"variable"'), + ('Value', 'Function'), + ('Value', 'Keyword'), + ('Value', 'Markup'), + ('Value', 'Namespace'), + ('Value', 'Navigation'), + ('Value', 'Snippet'), + ('Value', 'Type'), + ('Value', 'Variable'), + ('Variable', '$SELECTION'), + ('Variable', '$TM_CURRENT_LINE'), + ('Variable', '$TM_CURRENT_WORD'), + ('Variable', '$TM_DIRECTORY'), + ('Variable', '$TM_FILENAME'), ('Variable', '$TM_FILEPATH'), + ('Variable', '$TM_LINE_INDEX'), + ('Variable', '$TM_LINE_NUMBER'), + ('Variable', '$TM_SCOPE'), + ('Variable', '$TM_SELECTED_TEXT'), + ('Variable', '$TM_SOFT_TABS'), + ('Variable', '$TM_TAB_SIZE'), ] self._test_a_doc_page_index('docs/completions.html', contains) - def test_distraction_free_mode(self): + def test_distraction_free(self): contains = [ ('Guide', 'Distraction Free Mode'), ('Section', 'Customization'), + ('Setting', '"draw_centered"'), ('Setting', '"gutter"'), - ('File', 'Packages/User/Distraction Free.sublime-settings'), + ('Setting', '"line_numbers"'), + ('Setting', '"scroll_past_end"'), + ('Setting', '"word_wrap"'), + ('Setting', '"wrap_width"'), ] self._test_a_doc_page_index('docs/distraction_free.html', contains) - def test_projects(self): + def test_file_patterns(self): contains = [ - ('Guide', 'Projects'), - ('Section', 'Project Format'), - ('Setting', 'follow_symlinks'), + ('Guide', 'File Patterns'), + ('Section', 'Basic Syntax'), + ('Section', 'Path Rules'), + ('Section', 'Uses'), + ('Setting', '"binary_file_patterns"'), + ('Setting', '"file_exclude_patterns"'), + ('Setting', '"file_include_patterns"'), + ('Setting', '"folder_exclude_patterns"'), + ('Setting', '"folder_include_patterns"'), + ('Setting', '"index_exclude_patterns"'), + ('Setting', '"index_include_patterns"'), ] - self._test_a_doc_page_index('docs/projects.html', contains) + self._test_a_doc_page_index('docs/file_patterns.html', contains) - def test_settings(self): + def test_font(self): contains = [ - ('Guide', 'Settings'), - ('Section', 'Categories'), - ('File', 'Packages/Default/Preferences.sublime-settings'), + ('Guide', 'Font Settings'), ] - self._test_a_doc_page_index('docs/settings.html', contains) + self._test_a_doc_page_index('docs/font.html', contains) - def test_key_bindings(self): + def test_git_integration(self): contains = [ - ('Guide', 'Key Bindings'), - ('Section', 'User Bindings'), - ('Filter', '"has_prev_field"'), - ('Setting', '"args" Key'), + ('Attribute', 'Missing'), + ('Attribute', 'Modified'), + ('Attribute', 'Staged Addition'), + ('Attribute', 'Staged Deletion'), + ('Attribute', 'Staged Modification'), + ('Attribute', 'Unmerged'), + ('Attribute', 'Untracked'), + ('Command', '"head" – diff against the file at HEAD'), + ('Command', '"index" – diff against the Git index'), + ('Command', 'Blame File…'), + ('Command', 'Diff Markers'), + ('Command', 'File History…'), + ('Command', 'Folder History…'), + ('Command', 'Line History…'), + ('Command', 'Open Git Repository…'), + ('Command', 'Settings'), + ('Command', 'Side Bar'), + ('Command', 'Status Bar'), + ('Command', 'Sublime Merge Integration'), + ('Command', 'Sublime Merge: Blame File'), + ('Command', 'Sublime Merge: File History'), + ('Command', 'Sublime Merge: Folder History'), + ('Command', 'Sublime Merge: Open Repository'), + ('Guide', 'Git Integration'), + ('Section', 'Diff Markers'), + ('Section', 'Settings'), + ('Section', 'Side Bar'), + ('Section', 'Status Bar'), + ('Section', 'Sublime Merge Integration'), + ('Setting', 'git_diff_target'), + ('Setting', 'show_git_status'), ] - self._test_a_doc_page_index('docs/key_bindings.html', contains) + self._test_a_doc_page_index('docs/git_integration.html', contains) + ### ('Command', 'Blame File…'), was found 2 times + ### ('Command', 'File History…'), was found 2 times + ### ('Command', 'Folder History…'), was found 2 times + ### ('Command', 'Open Git Repository…'), was found 3 times - def test_indentation_settings(self): + def test_gpu_rendering(self): + contains = [ + ('Guide', 'GPU Rendering'), + ('Section', 'Diagnostics'), + ('Section', 'Setting'), + ] + self._test_a_doc_page_index('docs/gpu_rendering.html', contains) + + def test_incremental_diff(self): + contains = [ + ('Guide', 'Incremental Diff'), + ('Section', 'Diff Markers'), + ('Section', 'Inline Diffs'), + ('Section', 'Navigation'), + ('Section', 'Reverting'), + ('Section', 'Settings'), + ('Setting', 'git_diff_target'), + ('Setting', 'mini_diff'), + ('Tag', 'diff.deleted'), + ('Tag', 'diff.deleted.char'), + ('Tag', 'diff.inserted'), + ('Tag', 'diff.inserted.char'), + ] + self._test_a_doc_page_index('docs/incremental_diff.html', contains) + + def test_indentation(self): contains = [ ('Guide', 'Indentation Settings'), + ('Section', 'Automatic Indentation Settings'), + ('Section', 'Basic Settings'), ('Section', 'Converting Between Tabs and Spaces'), + ('Section', 'Indentation Detection'), + ('Setting', 'auto_indent'), + ('Setting', 'detect_indentation'), ('Setting', 'indent_to_bracket'), + ('Setting', 'smart_indent'), + ('Setting', 'tab_size'), + ('Setting', 'translate_tabs_to_spaces'), + ('Setting', 'trim_automatic_white_space'), ('Setting', 'use_tab_stops'), ] self._test_a_doc_page_index('docs/indentation.html', contains) - def test_spell_checking(self): + def test_index(self): contains = [ - ('Guide', 'Spell Checking'), - ('Section', 'Dictionaries'), - ('Setting', 'spell_check'), - ('Command', 'next_misspelling'), + ('Guide', 'Documentation'), + ('Section', 'Customization'), + ('Section', 'Miscellaneous'), + ('Section', 'Package Development'), + ('Section', 'Usage'), + ] + self._test_a_doc_page_index('docs/index.html', contains) + + def test_indexing(self): + contains = [ + ('Guide', 'Indexing'), + ('Section', 'Features'), + ('Section', 'Settings'), + ('Section', 'Status'), + ('Setting', 'index_exclude_patterns'), + ('Setting', 'index_files'), + ('Setting', 'index_workers'), + ('Setting', 'show_definitions'), ] + self._test_a_doc_page_index('docs/indexing.html', contains) + + def test_key_bindings(self): + contains = [ + ('Filter', '"auto_complete_visible"'), + ('Filter', '"eol_selector"'), + ('Filter', '"following_text"'), + ('Filter', '"has_next_field"'), + ('Filter', '"has_prev_field"'), + ('Filter', '"is_recording_macro"'), + ('Filter', '"last_command"'), + ('Filter', '"last_modifying_command"'), + ('Filter', '"num_selections"'), + ('Filter', '"overlay_visible"'), + ('Filter', '"panel"'), + ('Filter', '"panel_has_focus"'), + ('Filter', '"panel_visible"'), + ('Filter', '"popup_visible"'), + ('Filter', '"preceding_text"'), + ('Filter', '"read_only"'), + ('Filter', '"selection_empty"'), + ('Filter', '"selector"'), + ('Filter', '"text"'), + ('Guide', 'Key Bindings'), + ('Section', 'Bindings'), + ('Section', 'Example'), + ('Section', 'User Bindings'), + ('Setting', '"args" Key'), + ('Setting', '"command" Key'), + ('Setting', '"context" Key'), + ('Setting', '"keys" Key'), + ] + self._test_a_doc_page_index('docs/key_bindings.html', contains) + + def test_ligatures(self): + contains = [ + ('Guide', 'Ligatures'), + ('Option', '"dlig"'), + ('Option', '"no_calt"'), + ('Option', '"no_clig"'), + ('Option', '"no_liga"'), + ('Section', 'Troubleshooting'), + ('Section', 'Usage'), + ] + self._test_a_doc_page_index('docs/ligatures.html', contains) + + def test_linux_repositories(self): + contains = [ + ('Guide', 'Linux Package Manager Repositories'), + ('Section', 'apt'), + ('Section', 'dnf'), + ('Section', 'pacman'), + ('Section', 'yum'), + ('Section', 'zypper'), + ] + self._test_a_doc_page_index('docs/linux_repositories.html', contains) + + def test_menus(self): + contains = [ + ('File', 'Context.sublime-menu'), + ('File', 'Find in Files.sublime-menu'), + ('File', 'Main.sublime-menu'), + ('File', 'Side Bar Mount Point.sublime-menu'), + ('File', 'Side Bar.sublime-menu'), + ('File', 'Tab Context.sublime-menu'), + ('File', 'Widget Context.sublime-menu'), + ('Guide', 'Menus'), + ('Section', 'Adding to Submenus'), + ('Section', 'Available Menus'), + ('Section', 'Customization'), + ('Section', 'Entries'), + ('Section', 'Example'), + ('Setting', 'args'), + ('Setting', 'caption'), + ('Setting', 'children'), + ('Setting', 'command'), + ('Setting', 'mnemonic'), + ('Setting', 'platform'), + ] + self._test_a_doc_page_index('docs/menus.html', contains) + + def test_minihtml(self): not_contains = [ - ('Command', 'word'), + ('Element', 'file://'), ] - self._test_a_doc_page_index('docs/spell_checking.html', contains, + contains = [ + ('Attribute', 'class'), + ('Attribute', 'href'), + ('Attribute', 'style'), + ('Attribute', 'title'), + ('Element', ''), + ('Element', ''), + ('Element', ''), + ('Element', ''), + ('Element', ''), + ('Element', '
'), + ('Element', ''), + ('Element', '

'), + ('Element', '

'), + ('Element', '

'), + ('Element', '

'), + ('Element', '

'), + ('Element', '
'), + ('Element', ''), + ('Element', ''), + ('Element', ''), + ('Element', ''), + ('Element', '
  • '), + ('Element', '
      '), + ('Element', '

      '), + ('Element', ''), + ('Element', ''), + ('Element', '