Code Formatting In Xcode - xcode

Is there anyway to format the code in Xcode like you can do in Eclipse or Netbenas. I have not found any option in menu, is there any hot key for this or its simply not in Xcode?

In Xcode 4, it's been moved to Editor > Structure > Re-Indent command (and has a default shortcut of CTRL+I ).

Select some text and then: Edit->Format->Re-Indent
You can bind this to a hotkey in the preferences.

Well, first of all welcome to 2021. I know it's a very old question but still people like me visit this and for those people, I'm putting out multiple available solutions in one answer that worked for me after 2 hours of research and testing.
Re-Indent
As everyone else is suggesting, it's one of the default solution if you just want to re-indent the lines of code:
Goto: Editor -> Structure -> Re-Indent or use shortcut control + I
Using Xcode Extensions
There are 2 extensions I found and used which works charmingly for me.
1) SwiftFormat: mentioning the steps to install the xcode extension here from the readme.
Like the command-line tool, you can install the SwiftFormat for Xcode
extension application via Homebrew. Assuming you already have Homebrew
installed, type:
$ brew install --cask swiftformat-for-xcode
open the SwiftFormat for Xcode.app that you just installed. there you can change the rules of formatting.
After that, open the system preference -> extensions -> xcode source editor and mark the checkbox for SwiftFormat.
Restart the Xcode
Voila! You're good to go. you can use three options. format selected code, format entire file OR just lint file.
2) Swimat: (it is already mentioned in one of the answer here by #Guy Daher) steps to install from readme
Install via homebrew-cask
Homebrew latest version
brew install --cask swimat
Similar to above extension installation, open the Swimat.app if it does not open then try to sove it from system preferences -> security & privacy -> open swimat app
after opening, click on install in ./bin folder to make it work globally (not sure about this step but I just did it)
Restart Xcode
now you can goto editor -> swimat -> format
Bingo! You're good to go.
Additional uninvited help
You can simply set the keybinding to use any of this command. i.e. I've set the android studio default command to reformat the code as option + command + L
ps If anyone else found a better extension, please let me know in comment, I'll add it to the list.

Other than re-indentation (Edit > Format > Re-Indent), not really. However, Xcode does have support for scripts (the menu to the right of the Window menu), so you could conceivably write a script that formats your code how you like it.
Edit: here are some links that touch on this subject:
http://hackertoys.com/2008/09/18/adding-a-code-beautifier-script-to-xcode (dead link)
http://8020world.com/jcmendez/2006/11/geeky-stuff/software/adding-a-script-menu-to-xcode-to-reformat-code-using-astyle (dead link)

Here are the shortcuts, to format the code in Xcode
1.Format entire code (entire class/controller)
select the entire code and press ⌘+| on mac to format your code.
2.Format particular block of code
select the code and press
⌘+] for right move and ⌘+[ for left move
Note : as per #JavierGiovannini sugesstion you can do using Editor Menu option
3.Select code --> Go to Editor --> Structure --> Re-Indent

My personal favorite code formatter is Uncrustify.
It has many, many options, so I also suggest you download UniversalIndentGUI, a GUI to help set Uncrustify's behavior to your liking.

XCode 8 Extensions
Another option is to use an extension like Swimat. Does the job for me. However, the caveat is that it does not format on save due to the restrictive Xcode Extension APIs, but they're trying to find a workaround.

Not saying this is best approach, but for completeness, if you cut and then paste the code back in, Xcode will automatically format it for you.

In v.4 you can make some adjustments through xCode preferences...
Fix code indentation in Xcode

^-I (control - capital i)
: format the current line
⌘-A + ^-I
: format the whole code file

Try this solution: ⌘A [⌘K ⌘F]

Related

How can I use iterm as default terminal on macOS?

I want to make iTerm2 as my default terminal on macOS,
I open iTerm2 and hit to make iTerm default Term
But it's not working!
And I go to default terminal preferences
But after open it I see this
(Open iTerm Build version 3.3.7)
Menu: iTerm2 > Make iTerm2 Default Term
It sounds like you need to rebuild your macOS' LaunchServices.
To do this, download OnyX and choose the version based on your current macOS version.
The option that you need is in the red box, and I'd suggest that you UNCHECK anything that you don't need or don't know; otherwise, you might end up with deleting data that you might need:
After that, you can try again with the built-in Make iTerm2 Default Term option in iTerm2 (if this option is greyed out for you, click option + the iTerm menu button to re-enable it again).
There are ways to do this through the command line without downloading third-party apps, but I trust OnyX enough to hand it the job.
However, if you decide to do it from the command line, make sure you type the command that corresponds to your current macOS version. More on that here.
Hope this helps :)
Use this location instead:
/Applications/iTerm.app/Contents/MacOS/iTerm2
but note that it will not solve your issue completely. Termianal will start anyway, but this time, it will run iTerm2 - as you instructed it to do.
One thing you can do is find the file that opens a terminal (in my case it was metro opening in a React Native app). Find the file in your finder, right click on it, choose get info, then expand the Open With tab. There you should find a dropdown menu on what to open those kind of files with. The default is terminal, but choose iTerm2 and click on change all.
For example, in my situation I had to find launchPackager.command file under node_modules/react-native/scripts/. Do the above with that file and it will make iTerm your default terminal after clicking change all.
From where do you want to open the terminal? I was facing the same problem as you when I wanted to open the external terminal from Visual Studio Code.
I solved it by going to Code > Preferences > Settings. Look for terminal in the search bar and setting /Applications/iTerm.app in Terminal > External for your operating system.

How to use code formatter in Xcode for Swift?

Xcode code formatter Swift
I'm trying to auto format my code written in Swift. It's necessary if you're working in team and using CVS and don't want to merge for hours.
Ctrl+I just makes an indent, but for example i want to have proper space between functions and just all the stuff like in Clang.
The reformat code command in xcode is Ctrl-I, not Cmd-I and it appears to work just fine.
I write a extension app about format Swift code: Swimat
There has two way to install
brew cask install swimat
Clone this repo, build and restart Xcode.
See https://github.com/Jintin/Swimat for more information
In Xcode [Objective-C, Swift]:
1) ⌘+A: highlight code
2) ⌃+I: reformat code
⌃+i: reformat code
Ctrl+i: fix code indentation
Eventhough it has good IntelliSense, xcode sucks at code formatting generally.Wish it was better.
Apple has to spend so much effort in this in order to make it VS level good.
Xcode and Swift 2.0: Per file, Cmd-A then Ctl-I. Ctl-I works for what is highlighted, Cmd-A highlights all. Just be careful not to accidentally delete all your source after the Ctl-A!
SwiftFormat is a popular code formatter for swift. It has an extension for Xcode, which can be accessed from the Editor menu.
Quote from the SwiftFormat readme:
SwiftFormat is a code library and command-line tool for reformatting
swift code on macOS or Linux.
SwiftFormat goes above and beyond what you might expect from a code
formatter. In addition to adjusting white space it can insert or
remove implicit self, remove redundant parentheses, and correct many
other deviations from the standard Swift idioms.
(I know the question says Xcode but)
personally this is another reason to use AppCode alongside Xcode.
While Xcode only fixes the indentation for Swift code, as mentioned in the question, AppCode at least handles spaces too. Somewhat relatedly it removes indents from empty lines by default.
AppCode's Swift support definitely isn't perfect yet and you still need to check the code in both, but it's still worth it because of better navigation and things like this.
The command in xcode is ctrl-i to format code, not cmd-i.
I would suggest using sublime text with the swift plugin, which will allow you to hotkey the code formatting.
https://sublime.wbond.net/packages/Swift
Select lines, then press Ctrl+I.

How do I activate the Zen coding key bindings in Sublime Text 2?

I just downloaded the Zen coding package for Sublime Text 2, but I can't figure out how to activate it.
I already have it in Netbeans, and here you just have to press CTR+ALT+N, but this doesn't work in the Sublime editor.
Google didn't yield any results, so I'm asking here.
Can someone tell me how to activate the Zen coding function?
press Ctrl+Alt+Enter and you'll get a text input box at the bottom of the screen, titled: Enter Koan:. as you type the zen expression into the box it will simultaneously unfold on the screen.
Alternatively, you can type the zen expression in the editor and press tab to expand it. Be sure not to leave any spaces inside the expression or after it.
I have been using Sublime Text 2 beta, build 2139 on Windows (but I'm also pretty sure this should work on Mac OS and Linux too) and here's how I got it to work:
After installing Sublime Text 2 itself, install Package Control
for Sublime Text 2. This is an add-on that allows you to easily
manage another add-ons.
I couldn't get the first installation option to work so I went for
the manual method. On my installation there was no folder called
"Installed packages", instead I've used "Pristine Packages" folder
which seemed to contain other, already installed extensions.
Restart Sublime Text 2
With Package Control installed open Sublime Text 2 editor and choose Preferences -> Package Control -> Package Control : Install Package from the menu. Hit "Enter" and there should be a list of packages available for installation displayed on the screen. Start typing "Zen" and Zen-Coding will be presented. When selected hit "Enter" again, status bar on the bottom of the screen will be showing installation progress.
When it's done - restart Sublime Text 2 one last time. Now, you can expand Zen-Coding abbreviations with 'ctrl+space' or 'tab'.
Remember it will only work in the saved file, with extension "html". (in particular - it won't work on the new document you've just created).
I hope this helps
To expand your zencoding, just press TAB. However, for a full list of all the keybindings, look in your Zencoding folder for a file called "Default (NAME_OF_YOUR_OPERATING_SYSTEM).sublime-keymaps". To get to the package, go to "Preferences > Browse Packages > zencoding".
Ctrl + Opt (Alt on a PC) + Enter. Check out the video.
See this post : Zen coding downloading trouble
and my comments for detailed instructions.
Also, after an upgrade, just replace the folder with the original one from
http://dl.dropbox.com/u/1292831/ZenCoding.zip
Good Luck ..
Download this one; https://github.com/sergeche/zencoding-sublime
It works on SublimeText2 2.0.1 build 2217 windows.
After install Emmet package, remember to restart sublime editor and save a file first to try it!. I thought it wasn't working after install, but it just needs a saved file to work on it.

Hotkey for commenting ruby code in Aptana Studio 3 not Working with german keyboard

In Aptana Studio 3 (latest version and all previous versions of 3) I am not able to comment lines via keyboard shortcuts. I have a german keyboard layout.
The default shortcut is CTRL + /, but this doesn't work. Even setting the shortcut in Preferences/General/Keys doesn't work. The command is called Python Toggle Comment.
Using the Commands menu and use Source -> Comments -> Comment Line / Selection comments the lines correctly. In this menu I can also see the hotkey CTRL + / behind the menu entry.
It would increase the speed of writing and testing code, if I could use the hotkey. How can I achieve this?
You can try pulling down a copy of the Source ruble and edit the keybinding to one that works for you. Commands > Source > Edit this bundle. It'll try to do a git clone of the bundle into your "Documents/Aptana Rubles/source.ruble" folder. Then you can edit commands/toggle_comment.rb and change the binding to what works for you.

Vim key bindings in Xcode?

Is there any way to have Vim key bindings in Xcode?
If you still interested in Vim keybinding plugin for Xcode I made one. Here it is.
http://programming.jugglershu.net/softwares/xvim.html
This is currently developed for personal (my) use. So you may feel bad with some lack of implementation. Give me a feed back(feature request) then. I'll add some keybinds if I have enough time.
#pkamb's answer is correct, but slightly out of date. In the Xcode 13 GM, Apple tweaked how to enable Vim keybindings.
To improve access to the Vim Mode, Xcode replaced the Enable Vim key bindings preference with an Edit > Vim Mode menu item. (75491567)
The next best thing is JetBrains' excellent Objective-C IDE AppCode. They have a great Vim plugin called IdeaVIM that is actively maintained.
I use MacVim as editor instead xcode. For code completion i use vim plugin named clang_complete - awesome plugin.
Xcode 13 in 2021 has added native Vim key binding support:
Xcode > Preferences > Text Editing > Editing > Enable Vim key bindings
https://developer.apple.com/xcode/
Vim mode
Many common key combinations and editing modes familiar to Vim users are supported directly within the code editor, using the new bottom bar to show mode indicators.
I myself use and really appreciate Shu's XVim, but for completeness and in case you're still interested, just recently viemu has opened its beta for Xcode, you can check it out at
http://www.viemu.com/blog/2013/05/01/viemu-for-xcode-public-beta-available/
I haven't tried it yet, but there's also $20 ViCiOUS. Right now, I use Shu's XVim plugin (cf. his answer), and recommend it.
ViEmu is finally available for Xcode, check it out. It uses the same vim emulation engine that they are using for their Visual Studio plug-in, so all the polishing that has been added to the product since 2005 is there.
I'm not affiliated to them, but I tested ViEmu and if it was available for Xcode 5, I would have paid for a license.
Try Editor -> Vim Mode in Xcode =>13.
It supports most of the common key bindings but there are exceptions, which is understandable given it's a relatively new feature. Most notably for me is the lack of support for a .vimrc file so if you want that (or just want more features) you can still use https://github.com/XVimProject/XVim2. Judging by the current maintainer it might eventually be made redundant by Xcode's default vim support but it still works well for me.

Resources