Flow
RubyMine provides basic support of Flow static type checker that brings type annotations to JavaScript. This support involves recognition and syntax highlighting of Flow structures on all operating systems.
Before you start
- Download and install the Node.js runtime environment.
- Configure the Node.js interpreter in RubyMine as described in Configuring a local Node.js interpreter.
- Install and enable the NodeJS repository plugin as described in Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins.
Installing Flow
Open the built-in RubyMine Terminal (Alt+F12) and at the command prompt, type:
-
npm install --global flow-bin
to install Flow globally. -
npm install --save-dev flow-bin
to install Flow in the current project.
Configuring Flow in RubyMine
To have RubyMine recognize Flow structures, provide correct syntax highlighting, report errors properly, and avoid false-positive error highlighting, change the JavaScript language level to Flow, add a .flowconfig
configuration file to your project, and supply every file to be checked with a // @flow
comment on top.
To change the language level to Flow
- In the Settings/Preferences dialog (Ctrl+Alt+S), click JavaScript under Languages and Frameworks. The JavaScript page opens.
- From the JavaScript Language Version drop-down list, choose Flow.
- In the Flow package or executable field, specify the path to the
node_modules\flow-bin
package or the Flow binary executable file. To usenode_modules\.bin\flow
make sure the path to Node.js is added to thePATH
environment variable. - In the Use Flow server for: area, specify the basis for coding assistance by selecting or clearing the following checkboxes:
- Type checking: When this checkbox is selected, syntax and error highlighting is provided based on the data received from the Flow server. When the checkbox is cleared, only the basic internal RubyMine highlighting is available.
- Navigation, code completion, and type hinting: When this checkbox is selected, suggestion lists for reference resolution and code completiong contain both suggestions retrieved from integration with Flow and suggestions calculated by RubyMine. When the checkbox is cleared, references are resolved through RubyMine calculation only.
- Keep the Save all modified files automatically checkbox selected to ensure that Flow is applied continuously because Flow checks the current files only after all the other modified files are saved.
To generate a .flowconfig configuration file in your project
open the embedded Terminal ( ) and type flow init
at the command prompt.
To have a file checked with Flow
Add a // @flow
comment at the top of it: just type flow
, press Tab, and RubyMine will expand it into // @flow
.