Code formatter for JupyterLab.
- JupyterLab installed under Python3.6+ environment
- Mainly because Black requires 3.6+, and I like using Black the most;
- Typing support requires 3.5+, and I like typing;
jupyter labextension install @ryantam626/jupyterlab_code_formatter
pip install jupyterlab_code_formatter
jupyter serverextension enable --py jupyterlab_code_formatter
For jupyterlab_code_formatter
to work, you would also need some formatters, three are currently supported:
- Black;
- YAPF;
- Autopep8;
Install at least one of them through pip install black
for example (or its equivalent in other package management systems).
Assuming you do have one of the formatters installed in the Python environment that runs JupyterLab, some extra options would appear under JUPYTERLAB CODE FORMATTER
, use those to apply formatting to current codecell (no multiple code cell application atm).
There are some formatter config exposed through the Jupyter Lab Advanced Settings Editor, have a browse and change it if you wish.
Add an extra extry to your keyboard shortcuts settings with something like
{"jupyterlab_code_formatter:black":{
"command": "jupyterlab_code_formatter:black",
"keys": [
"Ctrl K",
"Ctrl M"
],
"selector": ".jp-Notebook.jp-mod-editMode"
}}
This basically says "Under edit mode (detected through the selector), using the chord Ctrl K + Ctrl M, invoke the jupyterlab_code_formatter:black
command". And there you have it 🎉
For Autopep8 or YAPF, simply do autopep8/yapf instead of black.
For a development install (requires npm version 4 or later), do the following in the repository directory:
npm install
npm run build
jupyter labextension link .
pip install -e .
To rebuild the package and the JupyterLab app:
npm run build
jupyter lab build