# Copy Relative Command 📋️ A helpful command to copy a command to the clipboard based on configured settings, per language! ## Installation 💻️ Within Sublime Text: - open the command palette (Windows/Linux: Ctrl + Shift + P, MacOS: Cmd + Shift + P) - search for "Package Control: Install Package" and press enter - search for "Copy Relative Command" and press enter on the mactching entry ### Alternative installation 💻️ Within terminal: - clone this repository into your respective operating systems `Packages` directory - Linux: `cd ~/.config/sublime-text/Packages && git clone git@github.com:patoui/CopyRelativeCommand.git` - MacOS: `cd ~/Library/Application Support/Sublime Text 3/Packages && git clone git@github.com:patoui/CopyRelativeCommand.git` ## Quick start 🚀️ 1. open command palette and search for "Copy Relative Command Settings" 2. add language settings, example: ```json { "languages": { "php": [ { "glob": "**Test.php", "command": [ "vendor/bin/phpunit", "{relative_path}", "--filter={current_function_or_class}" ] }, { "glob": "*", "command": ["php -l {relative_path}"], }, ], } } ``` 3. execute `Copy Relative Command` within the configured language, such as a `php` file in our above example: - if the open file (active view) is a file named `test/Unit/ExampleTest.php` and the cursor is within a function name `test_it_should_be_true`, the command copied to the clipboard would be: - `vendor/bin/phpunit test/Unit/ExampleTest.php --filter=test_it_should_be_true` - if the open file (active view) is a file named `app/Http/Controllers/UserController.php` the command copied to the clipboard would be: - `php -l app/Http/Controllers/UserController.php` 4. That's it! Add your own configurations for language commands 👌️ ### Add a key binding 🔑️ To add a key binding, open "Preferences / Key Bindings - User" and add: ```jsonc // Copy Relative Command { "keys": ["alt+c", "alt+c"], "command": "copy_relative_command" } ``` With this setting pressing `alt + c + c` will copy the configured relative command to your system clipboard ## Settings 👨💻️
Key | Parent | Description |
---|---|---|
languages |
N/A | Contains a dictionary of all configured languages commands (e.g. php , go , python ) and has a special value of * to apply to all languages |
glob |
languages.* |
contains a Unix filename pattern to identify which files the current command applies to (see fnmatch and glob) |
command |
languages.* |
a list (array) of strings which represent the command to be run. The command key has a few helper values:
|