:toc: macro :toclevels: 5 :figure-caption!:

Sublime Text Kit

link=badge.fury.io/rb/sublime_text_kit

image::badge.fury.io/rb/sublime_text_kit.svg[Gem Version]

link=www.alchemists.io/projects/code_quality

image::img.shields.io/badge/code_style-alchemists-brightgreen.svg[Alchemists Style Guide]

link=circleci.com/gh/bkuhlmann/sublime_text_kit

image::circleci.com/gh/bkuhlmann/sublime_text_kit.svg?style=svg[Circle CI Status]

A command line interface for managing Sublime Text metadata.

toc::[]

Features

  • Provides project metadata (i.e. `.sublime-project` and `.sublime-workspace` files) management for project switching via the `CONTROL+COMMAND+P` shortcut.

  • Rebuilds project history (Project -> Recent Projects) from existing project files (assumes project metadata is in a directory) so one can easily toggle between up-to-date project information via the `CONTROL+COMMAND+P` shortcut.

Screencasts

link=www.alchemists.io/screencasts/sublime_text_kit

image::https://www.alchemists.io/images/screencasts/sublime_text_kit/cover.svg

Requirements

. https://www.ruby-lang.org[Ruby] . https://www.sublimetext.com[Sublime Text]

Setup

To install, run:

source,bash

gem install sublime_text_kit


Usage

Command Line Interface (CLI)

From the command line, type: `sublime_text_kit`

.… sublime_text_kit -c, [–config] # Manage gem configuration. sublime_text_kit -h, [–help=COMMAND] # Show this message or get help for a command. sublime_text_kit -m, [–metadata] # Manage project/workspace metadata. sublime_text_kit -p, [–snippets] # Print user defined snippets. sublime_text_kit -s, [–session] # Manage session metadata. sublime_text_kit -u, [–update] # Update Sublime Text with current settings. sublime_text_kit -v, [–version] # Show gem version. .…

For configuration options, type: `sublime_text_kit –help –config`

.… -e, [–edit], [–no-edit] # Edit gem configuration. -i, [–info], [–no-info] # Print gem configuration. .…

For metadata options, type: `sublime_text_kit –help –metadata`

.… -c, [–create], [–no-create] # Create metadata. -D, [–destroy], [–no-destroy] # Destroy metadata. -R, [–rebuild], [–no-rebuild] # Rebuild metadata. .…

For session options, type: `sublime_text_kit –help –session`

.… -R, [–rebuild], [–no-rebuild] # Rebuild session metadata. .…

For snippet options, type: `sublime_text_kit –help –snippets`

.… -a, [–ascii-doc], [–no-ascii-doc] # Print snippets in ASCII Doc format. -m, [–markdown], [–no-markdown] # Print snippets in Markdown format. .…

Customization

This gem can be configured via a global configuration: `~/.config/sublime_text_kit/configuration.yml`. It can also be configured via https://www.alchemists.io/projects/xdg[XDG] environment variables.

An example configuration could be:

source,yaml

:project_roots:

- "~/Dropbox/Development/Misc"
- "~/Dropbox/Development/OSS"
- "~/Dropbox/Development/Work"

:metadata_dir: “~/Dropbox/Cache/Sublime”


Feel free to take this configuration, modify, and save as your own custom `configuration.yml`.

The project roots define the root level directories where project folders are located. When project metadata (i.e. `.sublime-project`, `.sublime-workspace`) is generated, the name of the metadata file will be the same name as that of the project folder. All project metadata, regardless of root location, is written to the same metadata directory. If using the example settings shown above and assuming the following directory structure exists…

.… ~/Dropbox/Development/Misc/example ~/Dropbox/Development/OSS/sublime_text_kit .…

…the project metadata will be created in the workspace directory as follows:

.… ~/Dropbox/Cache/Sublime/example.sublime-project ~/Dropbox/Cache/Sublime/example.sublime-workspace ~/Dropbox/Cache/Sublime/sublime_text_kit.sublime-project ~/Dropbox/Cache/Sublime/sublime_text_kit.sublime-workspace .…

Workflow

The following demonstrates a default Sublime Text setup:

. Run: `sublime_text_kit –config –edit` (define Sublime Text Kit settings for project roots and

metadata directory).

. Shutdown Sublime Text (i.e. `CONTROL+Q`). . Run: `sublime_text_kit –metadata –create` (creates project metadata and rebuilds the session

metadata so Sublime Text has a complete project history from which to jump through via the
`CONTROL+COMMMAND+P` shortcut).

. Launch Sublime Text and use the `CONTROL+COMMAND+P` keyboard shortcut to toggle between

projects. Notice that you can (fuzzy type) project names to jump between them.

. Breeze through your project workload with ease. 😉

Troubleshooting

  • When rebuilding workspaces, ensure Sublime Text is shutdown or changes won’t be applied.

  • When rebuilding workspaces, ensure workspace_dir (as defined via settings.yml) points to a directory containing `.sublime-project` and `.sublime-workspace` files.

Development

To contribute, run:

source,bash

git clone github.com/bkuhlmann/sublime_text_kit.git cd sublime_text_kit bin/setup


You can also use the IRB console for direct access to all objects:

source,bash

bin/console


Tests

To test, run:

source,bash

bundle exec rake


Versioning

Read https://semver.org[Semantic Versioning] for details. Briefly, it means:

  • Major (X.y.z) - Incremented for any backwards incompatible public API changes.

  • Minor (x.Y.z) - Incremented for new, backwards compatible, public API enhancements/fixes.

  • Patch (x.y.Z) - Incremented for small, backwards compatible, bug fixes.

Code of Conduct

Please note that this project is released with a CODE_OF_CONDUCT.adoc[CODE OF CONDUCT]. By participating in this project you agree to abide by its terms.

Contributions

Read CONTRIBUTING.adoc[CONTRIBUTING] for details.

License

Read LICENSE.adoc[LICENSE] for details.

History

Read CHANGES.adoc[CHANGES] for details.

Credits

Engineered by https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].