Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Pegase745/sublime-flowtype
A full featured Flow type support for Sublime Text 3
https://github.com/Pegase745/sublime-flowtype
flow javascript sublime-text
Last synced: 18 days ago
JSON representation
A full featured Flow type support for Sublime Text 3
- Host: GitHub
- URL: https://github.com/Pegase745/sublime-flowtype
- Owner: Pegase745
- License: mit
- Created: 2017-04-19T09:03:02.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-11-22T10:34:26.000Z (about 5 years ago)
- Last Synced: 2024-09-03T00:05:05.967Z (4 months ago)
- Topics: flow, javascript, sublime-text
- Language: Python
- Homepage:
- Size: 105 KB
- Stars: 25
- Watchers: 4
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# FlowType
*FlowType turns your Sublime Text 3 into a full featured Flow IDE.*
[![GitHub (pre-)release](https://img.shields.io/github/release/Pegase745/sublime-flowtype/all.svg)](https://github.com/Pegase745/sublime-flowtype/releases)
[![Build Status](https://travis-ci.org/Pegase745/sublime-flowtype.svg?branch=master)](https://travis-ci.org/Pegase745/sublime-flowtype)
[![Build status](https://ci.appveyor.com/api/projects/status/jofwwwr30ub7f8r2/branch/master?svg=true)](https://ci.appveyor.com/project/Pegase745/sublime-flowtype)
[![Package Control](https://img.shields.io/packagecontrol/dt/FlowType.svg)](https://packagecontrol.io/packages/FlowType)
[![black](https://img.shields.io/badge/code%20style-black-000000.svg)]()**Features**
* Add and remove flow pragma on a file
* Check file contents for flow errors and highlight regions
* Go to file containing the type definition
* View a variable's type definition
* Show a file's coverage
* Show a text spinner every time the flow cli is working
* Launch cli commands in a thread in order to never block the IDE## Installation
Make sure you have [FlowType installed](https://flow.org/en/docs/install/) and binary `flow` is accesible for Sublime.
This package can be installed using [Package Control](https://packagecontrol.io/). Simply install the `FlowType` package from the official repository.
Otherwise, you must clone this repository in your packages directory. You can find it using the `Preferences -> Browse Packages` menu from within Sublime Text.
```bash
$ git clone https://github.com/Pegase745/sublime-flowtype.git FlowType
```## Usage
### Settings
The package settings can be modified in three places:
| Description | File Location | Menu Entry |
| ----------- | ------------- | ------------- |
| Global | `Packages/FlowType/FlowType.sublime-settings` | `Preferences > Package Settings > FlowType > Settings-Default` |
| User | `Packages/User/FlowType.sublime-settings` | `Preferences > Package Settings > FlowType > Settings-User` |
| Project (**recommended**) | `/.sublime-project` | `Project > Edit Project` (*options must be placed under the settings key*) |The default available configuration settings
| Key | Description | Default value |
| --- | ----------- | ------------- |
| `log_level` | Set logging level | `info` |
| `flow_bin_path` | Path to flow binary | /usr/local/bin/flow |
| `complete_with_builtintypes` | Allow completions of Flow built-in types | `true` |
| `suggest_autocomplete_on_edit` (**beta**) | Show autocomplete suggestions on edit | `false` |
| `check_contents_on_edit` | Check contents for Flow errors on edit | `true` |
| `check_contents_on_save` | Check contents for Flow errors on save | `false` |### Key Bindings
The key bindings can be modified in two places:
| Description | File Location | Menu Entry |
| ----------- | ------------- | ------------- |
| Default | `Packages/Default/Default (Linux/OSX/Windows).sublime-keymap` | `Preferences > Key Bindings` |
| User | `Packages/User/Default (Linux/OSX/Windows).sublime-keymap` | `Preferences > Key Bindings` |The default available key bindings
| Description | Linux/Windows | OSX |
| ----------- | ------------- | --- |
| View all errors | `ctrl+alt+c` | `super+alt+c` |
| Show autocomplete values | `ctrl+alt+space` | `super+alt+space` |### Mouse Bindings
It is not advised to specify default mousemaps in order to not create conflicts with other packages.
Therefore, you can add mouse bindings for FlowType like this:
* For **Linux**, create a "Default (Linux).sublime-mousemap" in **~/.config/sublime-text-3/Packages/User**
* For **OSX**, create a "Default (OSX).sublime-mousemap" in **~/Library/Application Support/Sublime Text 3/Packages/User**
* For **Windows**, create a "Default (Windows).sublime-mousemap" in **%appdata%\Sublime Text 3\Packages\User**For the following binding examples:
| Description | Linux/Windows | OSX |
| ----------- | ------------- | --- |
| Go to definition | `ctrl+left-click` | `super+left-click` |
| View type | `ctrl+right-click` | `super+right-click` |You must enter the following conf:
**Linux and Windows**
```json
[
{
"button": "button1",
"count": 1,
"modifiers": ["ctrl"],
"press_command": "drag_select",
"command": "flowtype_goto_definition",
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.js" }
]
},
{
"button": "button2",
"count": 1,
"modifiers": ["ctrl"],
"press_command": "drag_select",
"command": "flowtype_view_type",
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.js" }
]
}
]
```**OSX**
```json
[
{
"button": "button1",
"count": 1,
"modifiers": ["super"],
"press_command": "drag_select",
"command": "flowtype_goto_definition",
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.js" }
]
},
{
"button": "button2",
"count": 1,
"modifiers": ["super"],
"press_command": "drag_select",
"command": "flowtype_view_type",
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.js" }
]
}
]
```## Change Log
All notable changes to this project will be documented on the Github [Releases](https://github.com/Pegase745/sublime-flowtype/releases) page.
*This project adheres to [Semantic Versioning](http://semver.org/) and [Keep A Changelog](http://keepachangelog.com/).*
## License
This package is distributed under the terms of the MIT license. See the [LICENSE](LICENSE) file for more details.