Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fables-tales/rubyfmt
Ruby Autoformatter!
https://github.com/fables-tales/rubyfmt
Last synced: 26 days ago
JSON representation
Ruby Autoformatter!
- Host: GitHub
- URL: https://github.com/fables-tales/rubyfmt
- Owner: fables-tales
- License: mit
- Created: 2018-12-13T17:28:13.000Z (almost 6 years ago)
- Default Branch: trunk
- Last Pushed: 2024-09-03T22:11:26.000Z (2 months ago)
- Last Synced: 2024-10-06T03:28:44.948Z (about 1 month ago)
- Language: Rust
- Homepage:
- Size: 1.61 MB
- Stars: 1,074
- Watchers: 22
- Forks: 50
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# How do I pronounce `rubyfmt`
* en: Ruby format
* jp: ルビーフォーマット## How do I use it
### Install from `brew`
On Mac and Linux, `rubyfmt` can be installed with [Homebrew](https://brew.sh/):
```bash
brew install rubyfmt
```### Build from source
1. Make sure you've got cargo installed
2. Run `make all`
3. Copy target/release/rubyfmt-main to somewhere on your path as `rubyfmt`Rubyfmt supports the following CLI invocations:
* ` | rubyfmt` pipe from standard in
* `rubyfmt -i -- files or directories` to format files and directories in place
* `rubyfmt -- files or directories` output rubyfmtted code to STDOUT.
* `rubyfmt -c -- files or directories` output a diff of input and rubyformatted input.
* `rubyfmt --header-opt-in -- files or directories` to format files only with a `# rubyfmt: true` comment at the top of the file
* `rubyfmt --header-opt-out -- files or directories` to skip formatting files with a `# rubyfmt: false` comment at the top of the file`rubyfmt` also supports ignoring files with a `.rubyfmtignore` file when present in the root of the working directory.
`.rubyfmtignore` uses the same syntax as `.gitignore`, so you can choose to ignore whole directories or use globs as needed.
By default, `rubyfmt` also ignores files in `.gitignore` during file traversal, but you can force these files to be formatted by using the `--include-gitignored` flag.## Editor Support
### Vim
We aren't currently tested with any vim plugin managers, however, adding the
plugin from a git clone is fairly easy:* Run `cargo build --release`
* Add `source /path/to/rubyfmt.vim` to your `~/.vimrc` (e.g. [my dotfiles](https://github.com/penelopezone/dotfiles/commit/2c0e9c1215de368e64e063021e9523aa349c5454#diff-2152fa38b4d8bb10c75d6339a959650dR253) please note, this line is commented)
* Add `let g:rubyfmt_path = /path/to/target/release/rubyfmt-main` beneath the source line### Neovim + LSP + null-ls
If you use the popular [null-ls](https://github.com/jose-elias-alvarez/null-ls.nvim) LSP plugin to manage formatters, it supports `rubyfmt` out of the box. You can add the formatter to your existing `setup()` configuration:
```diff
local null_ls = require("null-ls")null_ls.setup({
sources = {
+ null_ls.builtins.formatting.rubyfmt,
},
})
```Read more in the [null-ls documentation](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md#rubyfmt).
### Visual Studio Code
Rubyfmt is a supported formatter in the popular
[vscode ruby extension](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby).
You should copy `rubyfmt-main` to be called `rubyfmt` on your PATH .
Once installed, add the following to vscode's `settings.json` file:``` json
"ruby.useLanguageServer": true,
"ruby.format": "rubyfmt",
"[ruby]": {
"editor.formatOnSave": true
},
```### RubyMine (and similar Jetbrains family IDE)
[Install](https://www.jetbrains.com/help/ruby/settings-tools-file-watchers.html) the File Watchers plugin and go to `File | Settings | Tools | File Watchers`. Now import `watchers.xml` from `editor_plugins/rubymine/`. Optionally set `Level` to `Global` to have it available across all projects.
See [this reference](https://www.jetbrains.com/help/ruby/using-file-watchers.html#ws_filewatcher_type_and_location_of_input_files) on using file watchers to learn more.
### Sublime Text
Install the [rubyfmt plugin](https://github.com/toreriklinnerud/sublime-rubyfmt/) from [Package Control](https://packagecontrol.io): Install Package -> rubyfmt.
Ruby files are formatted on save or by pressing `Alt + ;` or on macOS: `Cmd + ;`. `rubyfmt` is assumed to be on path.
Overridable default settings:
``` json
{
"ruby_executable": "ruby",
"rubyfmt_executable": "rubyfmt",
"format_on_save": true,
}
```### Atom
Install the [rubyfmt package](https://github.com/toreriklinnerud/atom-rubyfmt/) from Settings > Packages.
Ruby files are formatted on save or by pressing `Alt + ;` or on macOS: `Cmd + ;` `rubyfmt` is assumed to be on path. See the package settings for more options.
## Contributing
Please checkout [our contributing guide](./CONTRIBUTING.md)