-
Notifications
You must be signed in to change notification settings - Fork 890
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
77c29ef
commit 16ad355
Showing
2 changed files
with
85 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# Using YAPF with your editor | ||
|
||
YAPF is supported by multiple editors via community extensions or plugins. | ||
|
||
- [IntelliJ/PyCharm](#intellijpycharm) | ||
- [IPython](#ipython) | ||
- [VSCode](#vscode) | ||
|
||
## IntelliJ/PyCharm | ||
|
||
Use the `File Watchers` plugin to run YAPF against a file when you perform a save. | ||
|
||
1. Install the [File Watchers](https://www.jetbrains.com/help/idea/using-file-watchers.html) Plugin | ||
1. Add the following `.idea/watcherTasks.xml` to your project. If you already have this file just add the `TaskOptions` section from below. This example uses Windows and a virtual environment, modify the `program` option as appropriate. | ||
```xml | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project version="4"> | ||
<component name="ProjectTasksOptions"> | ||
<TaskOptions isEnabled="true"> | ||
<option name="arguments" value="-i $FilePathRelativeToProjectRoot$" /> | ||
<option name="checkSyntaxErrors" value="true" /> | ||
<option name="description" /> | ||
<option name="exitCodeBehavior" value="ERROR" /> | ||
<option name="fileExtension" value="py" /> | ||
<option name="immediateSync" value="true" /> | ||
<option name="name" value="yapf" /> | ||
<option name="output" value="" /> | ||
<option name="outputFilters"> | ||
<array /> | ||
</option> | ||
<option name="outputFromStdout" value="false" /> | ||
<option name="program" value="$PROJECT_DIR$/.venv/Scripts/yapf.exe" /> | ||
<option name="runOnExternalChanges" value="true" /> | ||
<option name="scopeName" value="Project Files" /> | ||
<option name="trackOnlyRoot" value="false" /> | ||
<option name="workingDir" value="$Projectpath$" /> | ||
<envs /> | ||
</TaskOptions> | ||
</component> | ||
</project> | ||
``` | ||
|
||
## IPython | ||
|
||
IPython supports formatting lines automatically when you press the `<Enter>` button to submit the current code block. | ||
|
||
Make sure that the YAPF module is available to the IPython runtime: | ||
|
||
```shell | ||
pip install ipython yapf | ||
``` | ||
|
||
pipx example: | ||
|
||
```shell | ||
pipx install ipython | ||
pipx inject ipython yapf | ||
``` | ||
|
||
Add following to `~/.ipython/profile_default/ipython_config.py`: | ||
|
||
```python | ||
c.TerminalInteractiveShell.autoformatter = 'yapf' | ||
``` | ||
|
||
## VSCode | ||
|
||
VSCode has deprecated support for YAPF in its official Python extension [in favor of dedicated formatter extensions](https://github.com/microsoft/vscode-python/wiki/Migration-to-Python-Tools-Extensions). | ||
|
||
1. Install EeyoreLee's [yapf](https://marketplace.visualstudio.com/items?itemName=eeyore.yapf) extension. | ||
1. Install the yapf package from pip. | ||
``` | ||
pip install yapf | ||
``` | ||
1. Add the following to VSCode's `settings.json`: | ||
```jsonc | ||
"[python]": { | ||
"editor.formatOnSaveMode": "file", | ||
"editor.formatOnSave": true, | ||
"editor.defaultFormatter": "eeyore.yapf" # choose this extension | ||
}, | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters