A Sublime Text package that allows a user to view all the available core/plugin commands for Sublime Text and Sublime Merge, along with their documentation/source.

Overview

CommandsBrowser

LICENSE LICENSE Tag Downloads

A Sublime Text package that allows a user to view all the available core/plugin commands for Sublime Text and Sublime Merge, along with their documentation/source.

CommandsBrowser

Installation

Package Control

There are several ways of installing & using this package, which are listed below (from the most preferred way to the least preferred way)

  1. Use Package Control: Install Package and search for CommandsBrowser & install it. Restart ST after you install it.
  2. Use Package Control: Add Repository. Copy the GitHub url for this repository (without the .git at the end) and enter it into the input panel that pops up at the bottom when you select Package Control: Add Repository. Now use Package Control: Install Package and search for CommandsBrowser and install it. Restart ST after you install it.
  3. Simply git clone this repository in your Packages directory.
  4. Whenever a new tagged release is pushed, grab the attached zip file for that release, rename it to remove the .zip extension & add .sublime-package extension and drop it into your Installed Packages directory (You however, loose the goodness of Package Control automatically updating the package, when there is a new tagged release).

If you are interested in contributing to this repository, then you need to follow (3). For more information, refer the CONTRIBUTING guidelines

Documentation

How to use this package ?

This package provides 3 items to the command palette.

  1. CommandsBrowser: Browse available Sublime Text core commands. This will show you all of the core commands that are present in Sublime Text. Selecting one would bring up a panel that would show the documentation for that command.
  2. CommandsBrowser: Browse available Sublime Merge core commands. This will show you all of the core commands that are present in Sublime Merge. Selecting one would bring up a panel that would show the documentation for that command.
  3. CommandsBrowser: Browse available plugin/package commands. This will show you all of the plugin/package commands that are present in Sublime Text. Selecting one would open the corresponding plugin file & navigate to that location where the command class is implemented.

Note:

  1. Since the core command list is not exposed by ST like plugin commands are, the only way to keep track of it would be to manually maintain a list of commands and show it. So, the list is probably incomplete. As far as I know, it should be fairly close to a complete list (It's probably the most comprehensive public list available).

  2. The list of Sublime Merge commands are limited to what is specific to Sublime Merge (95% of which is git related). However, since Sublime Text & Sublime Merge share a common codebase, there is a decent possibility that a good number of ST commands work in SM as well. They are not listed in SM, because they are already listed in ST. So, together, ST + SM command list should be a good overview of the total number of commands present in both applications together.

This package should be upto date with commands as of ST Build 4122 & SM Build 2062

Settings

The package ships with necessary helper files for users of LSP + LSP-json to take full advantage of intelligent autocompletions for settings.

auto_open_doc_panel_on_navigate (Boolean)

When set to true, automatically opens the core commands documentation panel as you navigate through them. This can be helpful when you quickly want to glance the documentation for multiple commands at once and not have to close & reopen the panel every time.

The default value for this setting is false.

filter_plugin_commands_on_host (String)

Sublime Text 4 has 2 plugin hosts. 3.3 (Python 3.3.6) & 3.8 (Python 3.8.8). This setting allows a user to filter the plugin commands based on the host.

Valid values are "all", "3.3" and "3.8" "all" - Show plugin commands from both hosts. "3.3" - Show plugin commands from the 3.3 host only. "3.8" - Show plugin commands from the 3.8 host only.

The default value for this setting is "all".

filter_plugin_commands_on_type (List[str])

This setting allows a user to filter the plugin commands based on the type of the command.

Examples:

  1. ["window", "application", "text"] - Shows all command types.
  2. ["window"] - Filters to show only window commands.
  3. ["application", "text"] - Filters to show only application & text commands.

The default value for this setting is ["window", "application", "text"].

filter_core_commands_on_type (List[str])

This setting allows a user to filter the core commands based on the type of the command.

Examples:

  1. ["text", "window", "application", "find"] - Shows all command types.
  2. ["window", "find"] - Filters to show only window & find commands.
  3. ["application", "text"] - Filters to show only application & text commands.

The default value for this setting is ["text", "window", "application", "find"].

copy_command_signature_modifier_key (str)

This setting allows a user to configure the modifier key that is used to copy the command signature to clipboard, when the said modifier key is held while selecting a command.

For a list of valid modifier key values, see https://www.sublimetext.com/docs/api_reference.html#type-event_dict

The default value for this setting is "ctrl".

Key bindings.

This package just ships with one key binding to make it easier to open the core commands documentation panel (If it exists). The key binding for that is ctrl + shift + c, ctrl + shift + d

Discussions

Discussions are enabled for this repo so that constructive discussions can be had on how to effectively use commands (especially core) to improve your ST/SM workflows. Any questions on core commands can be done in the respective channels i.e. Sublime Text and Sublime Merge.

Since plugin based commands are specific to plugin/package, it's best to ask them in the specific repository for that plugin/package. Of course, your free to ask relevant questions to get help.

Issues & feature requests

Please use the issues and feature requests template, whenever filing an issue/feature request, so as to stay as organised as possible.

Contributing

See the Contribution Guidelines to understand how to contribute to this project !

Acknowledgements

I'd like to make 2 acknowledgments here

  1. OdatNurd, who graciously granted me the permission to use his plugin to make available all plugin/package provided commands. Most of that code remains untouched, but I have made a few tweaks here & there to suit the package. He has an amazing YouTube channel that you should definitely check out, if you are interested in using Sublime Text more efficiently.

  2. PackageDev, from where I got the intial list of core commands metadata to work on. PackageDev has a YAML file for storing the data, which did not suit my tastes for 2 reasons

(a) Python doesn't have a default module for working with YAML files, which is why PackageDev uses pyyaml as a dependency. At the time of writing this, Package Control doesn't allow dependencies within the 3.8 plugin host, so you are stuck on 3.3 (which I did not want to be).

(b) I did not want to add an unnecessary dependency to what may be a simple package like this one.

License

The MIT License (MIT)

Copyright 2021 Β© Ashwin Shenoy

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sub license, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • Use color-based instead of semantic kind IDs for the command type icons

    Use color-based instead of semantic kind IDs for the command type icons

    Description of your enhancement/feature request proposal.

    Hi, thanks for the package, it is really convenient during plugin development!

    I'd like to ask for the following enhancement: For the kind icons of the items in the panel, you use kind IDs like for example sublime.KIND_ID_FUNCTION, which are supposed to represent things like the type of certain tokens in the program code or the item type for autocompletions: https://github.com/Sublime-Instincts/CommandsBrowser/blob/154c180e5f30a48fa84ba1fd8c518d7813a78d5a/src/utils/miscellaneous_utils.py#L18-L28

    In my theme (https://github.com/jwortmann/brackets-theme), this results in showing certain icons instead of the usual letters for the different command types. But here, those icons / semantic kind IDs don't make much sense, because I wouldn't really say that for example a text command corresponds to "namespace" or a window command to "function".

    icons

    Would it be possible that you change the kind IDs to use the "color-based" kind IDs, for example sublime.KIND_ID_COLOR_REDISH, etc., see https://www.sublimetext.com/docs/api_reference.html#type-kind_tuple at the bottom of the section.

    In that case, the kind icons would be shown as letters with the specified colors even in my theme, like in the following screenshot :slightly_smiling_face:

    colors

    Alternatives.

    :shrug:

    enhancement fixed 
    opened by jwortmann 3
  • Don't abbrieviate product name?

    Don't abbrieviate product name?

    I feel that using ST and SM abbreviations could potentially sound cryptic to some:

    https://github.com/Sublime-Instincts/CommandsBrowser/blob/f64739d3d59f4f1362751b9dabf83a1bc0722461/resources/CommandsBrowser.sublime-commands#L3-L15

    Maybe use full product names - Sublime Text and Sublime Merge instead?

    enhancement fixed 
    opened by rchl 3
  • Investigate why getting settings value on package install fails but fixes itself upon ST restart.

    Investigate why getting settings value on package install fails but fixes itself upon ST restart.

    Description of the bug

    Currently, when the package is installed, there are 2 things that are going haywire.

    1. It seems that the sublime.find_resources API fails to find py33/browse.py needed for gathering 3.3 commands.
    2. Settings just return None, instead of their default values.

    Both these issues fix themselves upon a restart. With (1), of course on restart, the necessary files are created. (2) is still puzzling.

    Steps to reproduce

    1. Install the package from Package Control (or use Package Control: Add Repository.
    2. Use CommandsBrowser: Browse Available ST core commands
    3. See the logs being spammed in the console about None being returned.

    Expected behavior

    It just works correctly when installed and no restart is required.

    Actual behavior

    Need to restart once to get things to work normally.

    CommandsBrowser version

    1.0.1

    CommandsBrowser settings.

    {
    
    }
    
    bug investigation fixed 
    opened by Ultra-Instinct-05 1
  • Add a setting to allow a user to filter plugin/package commands by the package name.

    Add a setting to allow a user to filter plugin/package commands by the package name.

    Description of your enhancement/feature request proposal.

    This feature request proposes to add a new setting filter_plugin_commands_on_package which would be an array of package names. The commands for package names present in the array would be shown in the list & rest excluded. The default value for these can be a string "all" indicating to include all plugin/package commands.

    Alternatives.

    None

    enhancement fixed 
    opened by Ultra-Instinct-05 1
  • Error for goto_definition command

    Error for goto_definition command

    Description of the bug

    Traceback (most recent call last):
      File "C:\Users\jwortmann\AppData\Roaming\Sublime Text\Installed Packages\CommandsBrowser.sublime-package\src/commands/commands_browser_core_commands.py", line 58, in <lambda>
      File "C:\Users\jwortmann\AppData\Roaming\Sublime Text\Installed Packages\CommandsBrowser.sublime-package\src/commands/commands_browser_core_commands.py", line 80, in on_select
      File "C:\Users\jwortmann\AppData\Roaming\Sublime Text\Installed Packages\CommandsBrowser.sublime-package\src/utils/core_commands_utils.py", line 48, in core_commands_doc_panel
      File "C:\Users\jwortmann\AppData\Roaming\Sublime Text\Installed Packages\CommandsBrowser.sublime-package\src/utils/core_commands_utils.py", line 48, in <listcomp>
    TypeError: object of type 'NoneType' has no len()
    

    Type should be "int" instead of null here

    https://github.com/Sublime-Instincts/CommandsBrowser/blob/16ef299085854d1f4b61aaf8280c23c3f98a43a5/st_commands_metadata/g.json#L19

    Steps to reproduce

    1. Open "CommandsBrowser: Browse available Sublime Text core commands."
    2. Select "goto_definition"
    3. No description in panel, error in console

    Expected behavior

    /

    Actual behavior

    /

    CommandsBrowser version

    latest

    CommandsBrowser settings.

    No response

    bug 
    opened by jwortmann 0
Releases(v1.5.0)
  • v1.5.0(Mar 31, 2022)

    This release addresses/adds/improves the following:

    • Document encoded_position argument for the open_file command.
    • Document ignore_auto_complete argument for the move command.
    • Document variant argument for the toggle_comment command.
    • Document close_unselected & convert_ident_case commands.
    • Improved documentation for the following ST commands: close_selected, focus_to_left, focus_to_right.
    • Remove the quick_diff command. This command was found to not exist.
    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Feb 2, 2022)

    This release addresses/adds/improves the following:

    • Use color based kind ids instead of semantic kind ids for command type icons, so that the command icons looks similar on themes using image textures (#6).
    • Document pattern & replace_pattern arguments for show_panel & group for open_file commands.
    • Document clear_recent_missing, open_repository commands on Sublime Merge.
    • Improved documentation for following SM commands: close_by_index, close_deleted_files, close_others_by_index, close_selected, close_to_right_by_index, close_unmodified, close_unmodified_to_right_by_index, delete_tag_on_remote, gitflow_finish_feature, gitflow_finish_release, gitflow_start_feature, gitflow_start_bugfix, init_gitflow, push.
    • Improved documentation for the following ST commands: move_to_neighboring_group
    • Added command palette entry for opening the wiki documentation.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Nov 24, 2021)

    This release addresses/adds/improves the following:

    • Fixed a situation where "all" was considered an invalid option for filter_plugin_commands_on_package (But it continued to work because the default fallback was "all").
    • Removed the trailing , from command signature when ctrl (or the configured modifier key) is used to copy command signature to clipboard.
    • Added command palette and main menu entries for viewing documentation.
    • Added command palette entry for opening key bindings.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Nov 23, 2021)

    This release addresses/adds/improves the following:

    • Fixed a situation where installing the package for the first time causes the py33 file to be not detected by sublime.find_resources & settings returns None, thus forcing the user to restart inorder to let changes pick up properly (#4)
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Nov 23, 2021)

    This release addresses/adds/improves the following:

    • A new setting filter_plugin_commands_on_package to filter plugin commands based on the package.
    • Improved documentation for select_lines, set_build_system, set_file_type, set_line_ending, show_overlay, show_panel, single_selection, slurp_find_string, slurp_replace_string, switch_file, discard_all_modified, git_config, navigate_to_commit_message, navigate_to_context_commit, navigate_to_commit, navigate_to_branch, navigate_to_child, navigate_to_parent, open_in_editor, push_tag, quick_open_repository, stage_all_untracked, stage_all_unmerged and show_command_palette
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Nov 22, 2021)

    This release addresses/adds/improves the following:

    • The command palette entries, quick panel placeholders, all use full forms for ST & SM to avoid any ambiguity (#5).
    • Improved documentation for cancel_edit_commit_message, navigate_back, navigate_forward, navigate_to_tag, open_in_editor, open_dir_in_sublime_text, show_command_palette, save_commit_message, commit, create_branch, create_tag, clean_working_dir, checkout_local_branch, delete_branch, delete_tag, discard_hunk, prompt_open_repository, rename_branch, reset and set_word_wrap
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Nov 15, 2021)

  • v1.0.1(Nov 15, 2021)

    This release addresses/adds/improves the following:

    • Fix situation when the installed package fails to read the .json files due to using wrong logic for loading the appropriate resources.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Nov 15, 2021)

    The initial release for the package.

    • Ability to view core commands for ST & SM with documentation.
    • Ability to view plugin/package commands for ST with ability to navigate to source.
    • Various settings to filter based on host/command type etc.
    • Key binding to auto open the documentation panel for core commands.
    • Using modifier keys to copy command signature to clipboard.
    Source code(tar.gz)
    Source code(zip)
Python 3 patcher for Sublime Text v4107-4114 Windows x64

sublime-text-4-patcher Python 3 patcher for Sublime Text v4107-4114 Windows x64 Credits for signatures and patching logic goes to https://github.com/l

null 187 Dec 27, 2022
Live coding in Python with PyCharm, Emacs, Sublime Text, or even a browser

Live Coding in Python Visualize your Python code while you type it in PyCharm, Emacs, Sublime Text, or even your browser. To see how to use one of the

Don Kirkby 256 Dec 14, 2022
Shows Odin Lang errors in Sublime Text.

OdinErrors Shows Odin Lang errors in Sublime Text. Config Collections and defines are stored in ols.json (Hijacked from ols). { "collections": [

Gus 3 Nov 20, 2021
Integrate clang-format with Sublime Text

Sublime Text Clang Format Plugin This is a minimal plugin integrating clang-format with Sublime Text, with emphasis on the word minimal. It is not rea

Jon Palmisciano 1 Dec 17, 2021
Kite IntelliJ plugin

Handbook Supported platforms The Kite plugin supports the following environments: PyCharm Community PyCharm Professional IntelliJ Community with the P

Kite 57 Dec 23, 2022
Multi-user server for Jupyter notebooks

Technical Overview | Installation | Configuration | Docker | Contributing | License | Help and Resources Please note that this repository is participa

JupyterHub 7k Jan 2, 2023
Gaphor is a UML and SysML modeling application written in Python.

Gaphor is a UML and SysML modeling application written in Python. It is designed to be easy to use, while still being powerful. Gaphor implements a fully-compliant UML 2 data model, so it is much more than a picture drawing tool. You can use Gaphor to quickly visualize different aspects of a system as well as create complete, highly complex models.

Gaphor 1.3k Jan 7, 2023
Automatically detect obfuscated code and other state machines

Scripts to automatically detect obfuscated code and state machines in binaries.

Aaron 110 Dec 4, 2022
πŸ’» Open recent VS Code folders and files using Ulauncher

ulauncher-vscode-recent ?? Open recent VS Code folders and files using Ulauncher. Quickly open recently-opened VS Code project directories and files.

Mihir Chaturvedi 14 Nov 24, 2022
VSCode extension to sort and refactor python imports using reorder-python-imports.

reorder-python-imports VSCode extension to sort and refactor python imports using reorder-python-imports. Unlike other import organizers, reorder-pyth

Ryan Butler 3 Aug 26, 2022
cottonformation is a Python tool providing best development experience and highest productivity

Welcome to cottonformation Documentation Full Documentatioin Here cottonformation is a Python tool providing best development experience and highest p

Sanhe 6 Jul 8, 2022
A way to integrate Latex, VSCode, and Inkscape in macOS. Adopted the whole workflow from Gilles Castel.

VSCode-LaTeX-Inkscape A way to integrate LaTeX, VSCode, and Inkscape in macOS Abstract I use LaTeX heavily in past two years for both academic work an

Pingbang Hu 62 Dec 14, 2022
Fully Automated YouTube Channel ▢️with Added Extra Features.

Fully Automated Youtube Channel β–’β–ˆβ–€β–€β–ˆ β–ˆβ–€β–€β–ˆ β–€β–€β–ˆβ–€β–€ β–€β–€β–ˆβ–€β–€ β–ˆβ–‘β–‘β–ˆ β–ˆβ–€β–€β–„ β–ˆβ–€β–€ β–ˆβ–€β–€β–ˆ β–’β–ˆβ–€β–€β–„ β–ˆβ–‘β–‘β–ˆ β–‘β–‘β–ˆβ–‘β–‘ β–‘β–’β–ˆβ–‘β–‘ β–ˆβ–‘β–‘β–ˆ β–ˆβ–€β–€β–„ β–ˆβ–€β–€ β–ˆβ–„β–„β–€ β–’β–ˆβ–„β–„β–ˆ β–€β–€β–€β–€ β–‘β–‘β–€β–‘β–‘ β–‘β–’β–ˆβ–‘β–‘ β–‘β–€β–€β–€ β–€β–€β–€β–‘

sam-sepiol 249 Jan 2, 2023
Small python-gtk application, which helps the user to merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface

Small python-gtk application, which helps the user to merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface

null 1.8k Dec 29, 2022
VaccineAlarm is a simple python script that allows user to get notified when their desired vaccine doses are available at vaccine centers near them.

Introduction VaccineAlarm is a simple python script that allows user to get notified when their desired vaccine doses are available at vaccine centers

Ankit Tripathi 5 Nov 26, 2021
Sink is a CLI tool that allows users to synchronize their local folders to their Google Drives. It is similar to the Git CLI and allows fast and reliable syncs with the drive.

Sink is a CLI synchronisation tool that enables a user to synchronise local system files and folders with their Google Drives. It follows a git C

Yash Thakre 16 May 29, 2022
Pincer-ext-commands - A simple, lightweight package for pincer prefixed commands

pincer.ext.commands A reimagining of pincer's command system and bot system. Ins

Vincent 2 Jan 11, 2022
Annotated notes and summaries of the TensorFlow white paper, along with SVG figures and links to documentation

TensorFlow White Paper Notes Features Notes broken down section by section, as well as subsection by subsection Relevant links to documentation, resou

Sam Abrahams 437 Oct 9, 2022