Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/eiskrenkov/magiccomment

Fully customizable Sublime Text plugin that automatically inserts configured pragma comments for you
https://github.com/eiskrenkov/magiccomment

python sublime-package sublime-plugin sublime-text sublime-text-plugin

Last synced: 2 months ago
JSON representation

Fully customizable Sublime Text plugin that automatically inserts configured pragma comments for you

Awesome Lists containing this project

README

        

# MagicComment ✨ for Sublime Text
MagicComment is a fully customizable Sublime Text plugin that automatically inserts required magic comments for you

Development is motivated by `frozen_string_literal` comment for Ruby files, but plugin can be used for literally any kind of files and any strings that you want to automatically insert

## Manual usage Demo
![Screen Recording 2022-03-14 at 01 17 57](https://user-images.githubusercontent.com/39211838/158079694-79eb9a74-91fb-4eb9-9b4f-0ae2b3a83359.gif)

## Installation

### Package Control
MagicComment is available at [Package Control]. Just select `Package Control: Install Package` in Sublime command palette and search for `MagicComment`

### Manual Installation
- `cd ` (macOS: `~/Library/Application\ Support/Sublime\ Text/Packages`)
- `git clone https://github.com/eiskrenkov/MagicComment.git`

## Usage
- **On file save** - Enabled by default, can be disabled in settings
- **Key Bindings** - Commented by default, can be configured to anything you want
- **Command Palette** - `CMD+P` and type `MagicComment` (or just `comment`) and select `MagicComment: Insert Comments`

> You can always configure key bindings at _Sublime Text menu_ -> _Preferences_ -> _Package Settings_ -> _MagicComment_ -> _Key Bindings_

## Default Configuration
> Remember, that you can always reconfigure it, just open _Sublime Text menu_ -> _Preferences_ -> _Package Settings_ -> _MagicComment_ -> _Settings_

### General
- `run_on_save`
- Type: `Boolean`
- Default: `true`

### Comments
- `text` - Text of the comment to insert
- Type: `String`
- Default: `true`

- `line` - Number of the line you wish to insert the comment
- Type: `Integer`
- Default: `1`

- `blank_lines` - Amount of blank lines to insert after the comment
- Type: `Integer`
- Default: `0`

- `files` - Object, containing files specific settings
- Type: `Object`

- `files` -> `include` - List of file names and extensions to insert comment for
- Type: `Array` of `String`
- Default: `[]`

- `files` -> `exclude` - List of file names and extensions that you want to ignore
- Type: `Array` of `String`
- Default: `[]`

> Note, that **Include** and **Exclude** arrays support wildcards for file extensions via '*'. E.g *.rb mathes all Ruby files, *.py - all Python files and so on

### Example configuration for `#frozen_string_literal: true` for `.rb` files
```json
{
"text": "# frozen_string_literal: true",
"line": 1,
"blank_lines": 1,
"files": {
"include": ["*.rb", "Gemfile", "Rakefile", "config.ru"],
"exclude": ["schema.rb"]
}
}
```

## Contribution
Issues and pull requests are highly welcome!

[Package Control]: https://packagecontrol.io/packages/MagicComment