Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/travisjeffery/ClangFormat-Xcode
Xcode plug-in to to use clang-format from in Xcode and consistently format your code with Clang
https://github.com/travisjeffery/ClangFormat-Xcode
clang-format objective-c plugin xcode xcode-plugin
Last synced: 3 months ago
JSON representation
Xcode plug-in to to use clang-format from in Xcode and consistently format your code with Clang
- Host: GitHub
- URL: https://github.com/travisjeffery/ClangFormat-Xcode
- Owner: travisjeffery
- License: mit
- Created: 2014-01-07T12:24:05.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2020-11-04T02:36:32.000Z (about 4 years ago)
- Last Synced: 2024-10-16T02:42:28.270Z (3 months ago)
- Topics: clang-format, objective-c, plugin, xcode, xcode-plugin
- Language: Objective-C
- Homepage: https://twitter.com/travisjeffery
- Size: 22.9 MB
- Stars: 2,893
- Watchers: 102
- Forks: 287
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ClangFormat-Xcode
An Xcode plug-in to format your code using Clang's format tools, by [@travisjeffery](https://twitter.com/travisjeffery).
With [clang-format](http://clang.llvm.org/docs/ClangFormat.html) you can use Clang to format your code to styles such as LLVM, Google, Chromium, Mozilla, WebKit, or your own configuration.
![usage](https://raw.github.com/travisjeffery/ClangFormat-Xcode/master/README/usage.png)
![demo](https://raw.github.com/travisjeffery/ClangFormat-Xcode/master/README/clangformat-xcode-demo.gif)
## Installation:
:warning: From XCode 8+, unsigning is required in order to use community-made plugins.
Check https://github.com/inket/update_xcode_plugins for more information.Install via [Alcatraz](http://alcatraz.io/).
OR
Clone this repo, build and run ClangFormat, restart Xcode.
## Removing ClangFormat
To remove ClangFormat, run the following in your terminal:
`rm -r "~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ClangFormat.xcplugin"`
Or just find the same file and move it to the trash. You'll need to restart Xcode after deleting the plugin.
## Usage:
### Format on save
I.e., you press `command-s` and the file is formatted and wrote to disk.
In the menu, open Edit > Clang Format > Click Format on save (a checkmark appears in this menu item indicicating that the feature is active.)
### Assign keyboard shortcuts
You can assign your own keyboard shortcuts like so:
- Open the System Preferences > Keyboard > Shortcuts > App Shortcuts > Click +
- Set the application to be Xcode
- Set the menu title to an action title, e.g. "Format File in Focus"
- Set your shortcutIn this example, we'll format the active file when `control-i` is pressed.
![assign keyboard shortcut](https://raw.github.com/travisjeffery/ClangFormat-Xcode/master/README/assign-keyboard-shortcut.png)
### Using your own style configuration
By using Clang Format > File in the plug-in menu, Clang will look for the nearest `.clang-format` file from the input file. Most likely, you'll have a .clang-format file at the root of your project.
[Here are the options for .clang-format and how they're configured](http://clang.llvm.org/docs/ClangFormatStyleOptions.html). Here's a [cool interactive website](http://clangformat.com/) to help you make your .clang-format file.
If one of the built-in styles is close to what you want, you can bootstrap your own configuration with:
`./bin/clang-format -style=llvm -dump-config > .clang-format`
For example, this .clang-format is similar to the [Linux Kernel style](https://www.kernel.org/doc/Documentation/CodingStyle):
```
BasedOnStyle: LLVM
IndentWidth: 8
UseTab: Always
BreakBeforeBraces: Linux
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
```And this is similar to Visual Studio's style:
```
UseTab: Never
IndentWidth: 4
BreakBeforeBraces: Allman
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
ColumnLimit: 0
```