blob: bcf5e0c56f4cb8f34c0fb5d3ab89333106914b80 [file] [log] [blame] [view]
# golangconfig Development
## Setup
- Install [Package Coverage](https://packagecontrol.io/packages/Package%20Coverage)
to run tests
- Install the [shellenv](https://github.com/codexns/shellenv) dependency by
executing `git clone --branch 1.4.1 https://github.com/codexns/shellenv`
inside of your `Packages/` folder
- Install this dependency by
executing `git clone https://go.googlesource.com/sublime-config golangconfig`
inside of your `Packages/` folder
- Use the Package Control command "Install Local Dependency" to install
`shellenv` and then `golangconfig` so they are available to the Python plugin
environment
## General Notes
- All code must pass the checks of the Sublime Text package
[Python Flake8 Lint](https://packagecontrol.io/packages/Python%20Flake8%20Lint).
The `python_interpreter` setting should be set to `internal`.
- Tests and coverage measurement must be run in the UI thread since the package
utilizes the `sublime` API, which is not thread safe on ST2
- Sublime Text 2 and 3 must be supported, on Windows, OS X and Linux
- In public-facing functions, types should be strictly checked to help reduce
edge-case bugs
- All functions must include a full docstring with parameter and return types
and a list of exceptions raised
- All code should use a consistent Python header
```python
# coding: utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
```
- Markdown-based API documentation can be automatically copied from the source
code by executing `dev/api_docs.py` with a Python installation containing
the `CommonMark` package
```bash
pip install CommonMark
python dev/api_docs.py
```