Contributing to gruvbox for Sublime Text
January 29, 2017 · View on GitHub
Contributions are always welcome. Before contributing please search the issue tracker; your issue may have already been discussed or fixed in develop. To contribute, fork gruvbox, commit your changes, & send a pull request to the develop branch.
Feature Requests
Feature requests should be submitted in the issue tracker, with a description of the expected behavior, where they’ll remain closed until sufficient interest, e.g. :+1:’s, has been shown by the community. Before submitting a request, please search for similar ones in the closed issues.
Pull Requests
For additions or bug fixes you should only need to modify the *.js files under the ./.gulp/ directory.
Do not edit the
*.sublime-theme,.tmTheme, or.sublime-settingsfiles directly as your changes will not be retained on the next build
Building
To build the themes, schemes, and widgets you will need Node.js
- Install the dependencies with
npm install - Run
./.gulp/build.jswith Node to build everything
Usage: build [options]
Options:
-h, --help output usage information
-t, --theme Build Themes
-s, --scheme Build Schemes
-w, --widget Build Widgets
Optionally, you can use gulp to ease the build process. You will need to have gulp installed globally.
The following gulp tasks are available:
gulpruns the defaultwatchtask.gulp watchwatches./.gulp/*.jsand builds everything on change.gulp build_themesbuilds theme.sublime-themesgulp build_schemesbuilds color scheme.tmThemesgulp build_widgetsbuilds widget.sublime-settingsgulp build_allbuilds themes, schemes, and widgetsgulp build_iconsbuilds file-type icon.tmPreferencesgulp buildbuilds themes, schemes, widgets, and icons
Navigating the Files
./.gulp/build.jsthe main script which builds themes, schemes, and widgets./.gulp/icons.jsscript which creates.tmPreferencesfor all icons in./.gulp/icons/./.gulp/components/*.jscontains all the.sublime-themecomponents./.gulp/scheme.jscontains all the.tmThemecomponents./.gulp/widget.jscontains all the.sublime-settingswidget components
Coding Guidelines
In addition to the following guidelines, please follow the conventions already established in the code.
All *.js files should follow the Airbnb JavaScript Style Guide
Guidelines are enforced using JSCS:
$ npm run style