syntax highlighting for .ru files in textmate - ruby

I am using text mate on the mac whilst learning Ruby on Rails. However the backup files (.ru) don't have any syntax highlighting and I can't find any bundles for these for text mate. Does anyone have any ideas?

Just select Ruby from the bottom bar select menu or hit ⌃⌥⇧R (Control + Option + Shift + R):
And for saving this preference permanently, go to Bundles -> Bundle Editor -> Edit Languages ... -> Ruby and here search for an Array called fileTypes and add 'ru' to it:

Related

Shortcut to jump to a chunk in R Markdown?

Is there a shortcut to jump to a chunk in a R Markdown (on a Mac)? I'm looking for a way to quickly go between one chunk to another.
I'm not completely sure this is possible on Mac, but in RStudio for Windows you can select to show the «document outline» in the IDE. Not really a shortcut perhaps, but it can easily be used to jump to different named chunks in the R Markdown document by clicking it.
By default, I believe the outline is set to only show «Sections» (i.e. ## Header here), so to enable it to show named chunks, go to Tools -> Global options -> R Markdown -> Show in document outline. Then set it to «Sections and Named Chunks»
fn + Command + Up/Down works on the latest RStudio. It also jumps to heading sections.
This preference option exists on the Mac desktop RStudio as well.

Shortcuts conflict between sublime text and textmate bundle

I install sublime text 3 and this bundle for mathematica: https://github.com/dehowell/mathematica-tmbundle.
However, when I text edit under the Mathematica mode, I have shortkey conflict issues mainly with three commands, Documentation for Current Word (control + H), Execute current statement / selection (shift + enter), and Execute current document (command + R). All these 3 shortcuts have been already taken by default in sublime text. For example, (control + H) is replacement in sublime.
I tried to modify the user keymap in sublime text, but it does not work. I think the right way is to modify that bundle posted on GitHub.
Can anyone help me how to fix this? I want to use this textmate bundle because the bundle for sublime text is really bad.
You can change the shortcuts if you set keyEquivalent in the corresponding .tmCommand file to another value.
The original shortcut for "Documentation for Current Word" can be found at this line: https://github.com/dehowell/mathematica-tmbundle/blob/master/Commands/Documentation%20for%20Current%20Word.tmCommand#L15
The syntax is easy, just use set whatever letter / key you want and use one / two / three of the following modifiers: ^ (Control), ~ (Option), # (Command)

How to search Xcode4.2 project?

I'd like to run a search on all files in my project. How can this be done in Xcode please?
In Xcode 4, as Jano mentioned:
⌘3 (Command + 3) will show the Search Navigator
However:
⇧⌘F (Command + Shift + F) will open the Search Navigator with focus on the search field
Both of these keyboard shortcuts will bring open the panel you need to search in all files. This page on developer.apple.com shows a list of the keyboard shortcuts available in Xcode.
From that reference, the following are the other Find related shortcuts:
Find in Workspace… ⇧⌘F (Shift-Command-F)
Find and Replace in Workspace… ⌥⇧⌘F (Option-Shift-Command-F)
Find… ⌘F (Command-F)
Find and Replace… ⌥⌘F (Option-Command-F)
Find Next ⌘G (Command-G)
Find Previous ⇧⌘G (Shift-Command-G)
Use Selection for Find ⌘E (Command-E)
Use Selection for Replace ⇧⌘E (Shift-Command-E)

Hidden Features of Xcode 4

Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
Now that Xcode 4 is officially released it's time for a follow up to my previous question: Hidden Features of Xcode
So what are they? What are those hidden little Xcode 4 hints & tips that you can't live without?
Please limit your tips to those that are new and specific to Xcode 4!
If you like your code to look as good as it runs, you've undoubtedly used #pragma mark - and #pragma mark <name> to provide a nice visual grouping in the Xcode class dropdown list. Xcode 4 now combines these into a single #pragma mark - <name>.
More on pragma mark.
shift-cmd-opt click on a symbol lets you tell Xcode exactly where in the UI you want the navigated-to file to open.
cmd-ret makes the version editor / assistant (the right hand pane) go away
shift-cmd-Y to hide the debugger
cmd-0 to hide the navigator (left pane)
cmd-[1..n] switch between navigators on left
cmd-opt-[1..n] switch between utilities (thing generally on right)
ctrl-[1..n] switch between various related files in the editor
Overall, Xcode 4 tries to keep things consistent w/the hot keys. Cmd is for mainline commands. Adding modifiers is for analogous commands focused on one particular sub-feature.
(These are just the four that come to mind as the my most pounded upon shortcuts that I'm using constantly! I'm sure it'll change over time as my workflow is refactored into the new hotness.)
Xcode 4 adds a new "Code Snippets" feature, accessible via View > Utilities > Code Snippet Library. To add a new code snippet, select some text in the editor view and drag it into the snippet library. You can either drag a snippet out and drop it in your code to use it, or, much more conveniently, assign a completion shortcut to it.
When you type in that series of letters, it will automatically show up in the code completion pop-up menu as you type your code. For example, among many others, I have a snippet set up so that typing "svk" will expand to setValue:<#value#> forKey:<#key#>. This can save a lot of typing and/or fishing around in the autocompletion menu for the methods and other code expressions you use the most. Xcode ships with a bunch of built-in snippets that come in very handy as well.
New shortcut I use most often: triple-finger swipe (up or down) to swap counterparts (between the interface and implementation files). No more hand acrobatics!
Thanks to https://twitter.com/xctotd/status/48148271759241216
shift-option-click on a file in the Groups and Files list Project Navigator, or hold shift-option while choosing a file from the Jump Bar.
You'll get a pop-over from which to pick where to open the file. New or existing tab, new or existing split (Assistant) editor, new window—every possible option is there.
Tabs in Xcode 4 are awesome. Each one maintains its own separate layout, so you can have multiple tabs with different things in them and have each one lain out appropriately.
I've been setting up my projects with three layouts—one for the project object, one for each nib (showing the owner's class's sources), and one for each class.
There is one bug here: As of 4.0, Xcode will reset the state (turning off any Assistants) of the active tab when you reopen the project. The workaround is to switch to a tab with no Assistants for Xcode to close before you close the project. I have filed this as Radar number 9178441.
ctrl-6 pops down within-file segment of jump bar (enables keyboard-controlled jump to methods)
cmd-{/} select previous / next tab
cmd-J navigate to any editor (but why oh why doesn't TAB then cycle between them?)
Editor ShortCuts
Cmd + Ctrl + up/down Jump between
.h & .m Files.
Cmd + Ctrl + Left/Right Jump between Previous
Edited Files/Next Edited files.
Layout Shortcuts
Cmd + 0 hide or show navigators
Cmd + opt + 0 hide or show inspectors
Cmd + Shift + Y hide or show debugger console.
Navigators Shortcuts
Cmd + 1 Project
Cmd + 2 Symbol
Cmd + 3 Search
Cmd + 4 Issue
Cmd + 5 Debug
Cmd + 6 BreakPoint
Cmd + 7 Log
Tab Switching & Jumping
Cmd + { Previous Tab
Cmd + } Next Tab
Cmd + j Select location to jump
Shift + Option + ClickFile Select location to open file
Cmd + Alt + Option + Click Select location to open Method
Inspectors
Cmd + Opt + 1 File Inspector
Cmd + Opt + 2 Quick Help
Cmd + Opt + 3 Identity Inspector
Cmd + Opt + 4 Attribute Inspector
Cmd + Opt + 5 Size inspector
Cmd + Opt + 6 Connection Inspector
Build Related
Cmd + B Build
Cmd + Shift + K Clean
Cmd + . top
Code Folding
Cmd + Alt + Left Minimize Current Method/Class/Interface
Cmd + Alt + Right Expand Current Method/Class/Interface
Cmd + Alt + Shift + Left Minimize All Method/Class/Interface
Cmd + Alt + Shift + Right Expand All Method/Class/Interface
Here's the first. Tabs! Xcode 4 has replaced Xcode 3's useful but rarely used "favorites bar" with persistent tabs. This means you can keep a working set of commonly used documents in your tab bar.
Not exactly a hidden feature as such - but the fact that the tabs are persistent is perhaps easily missed.
If you're having any sort of trouble with the indexing of your project (e.g. symbols not showing up in autocompletion), open the Organizer window, click the Projects tab, and use the "Delete" button to delete the derived data for your project. This will force a rebuild of the project's index, as well as tossing out any built products.
Some useful hotkeys for working on smaller screens are:
cmd-shift-y - Hide and show the console/debug area
cmd-0 - Hide and show the file navigation
You can now associate groups in the Project Navigator with folders on disk. It always bugged me before that the Xcode 3 file view may not represent the actual structure of the project on disk.
Create a new group, then with the new group highlighted, open the File Inspector. In the identity section on the right just below the 'Path' is a small icon, click this to open the file browser dialog allowing you to select the directory for this group.
If you hold the FN key then you can scan through your document with the cursorkeys, without moving the cursor
Jump bar:
if your write outside function:
// FIXME: A Bug
// TODO: Later
// ???: ???
// !!!: !!!
// MARK: This a mark
Will like:
Also you can search:
Click with Option(With Shift at the same time, you can choice another window), you can see a dialog letting you specify where the file should open:
Source control:
If you use svn or git, discard change is easy:
Interface buidler
In xcode 4.2, you can jump to interface builder here:
Click a ui object with Shift, it will show a list of all objects under the point.
Try this:
Select a ui object, hold Option, then move mouse over other objects. It will like:
Other
Hotkey: Shift+Command+O Open Quickly
Try:
#error message
#warning message
And read:
Writing and Editing Source Code
Text Editor:
Cmd-clicking on a class name will take you to the implementation (or header) file of that class, cmd-clicking on an object will take you to where the object is declared.
Alt-clicking will open a documenation popup for the object you clicked on.
Adding frameworks: You cannot simply do this by right-clicking on the project or a group (like in Xcode 3). You need to go to the project view, select your target and go to "Build Phases" tab. Frameworks can be managed under the "Link Binary with Libraries" section.
Setting target dependencies: Similar to the above, in the "Target Dependencies" section of the "Build Phases" tab.
Keep your archives safe -prior to installing Xcode 4 (from 3). You will lose them (most likely) and with them lose your ability to symbolicate your crash logs.
Delete action-BEWARE: "Delete" (instead of "Remove Reference Only") directly erases the file from your drive. It doesn't go into the Trash, so you cannot recover it.
cmd-J jumps to the editor, but if you have more than one editor open you get an overlay that has all of the open editors. you can use cmd-→ and cmd-← to switch between the open editors.
Also, if you are having a hard time finding an option or property for anything the utilites window is probably your best bet:
hide and show utilities: cmd-opt-0
Things that are commonly hidden here that aren't intuitive:
data model entity properties.data model propertiesxib properties
You don't need to declare IBAction - methods in .h File. & You can directly connect it in Interface Builder.
Example:
-(IBAction)btnLogInTapped:(id)sender {
// place following method in .m file of your code. save file. Open the
// .xib file of viewController
// click on files owner
// click on connection-inspector.
// you can view your methods under "received actions"
}
You don't need to declare variables, if you are creating property for it.
Example:
// a property declared in .h File of your view controller.
#property (nonatomic, retain) LogInVCtr *nxtLogInVCtr;
// synthesize above property in .m File
#synthesize nxtLogInVCtr;
// or
#synthesize nxtLogInVCtr = _nxtLogInVCtr;
// and you are done, you don't need to declare variable for it.
One of my favorites is the "Open Tab" behavior preference. If you go to "Behaviors" in Preferences, you can set it to go to a specific tab whenever a run starts. You can name the tab, something like "Debug" and Xcode4 will create it for you if it doesn't exist, and take you there when you start debugging. You can configure this tab just how you like it for debugging sessions, and it will stick that way after you close it, so whenever you do a run Xcode4 will be set up just how you want it, in a separate tab. You can even tear this tab off to a separate window, in which case Xcode4 will open a new specially configured "Debug" window each time you start a run! This feature is great because it keeps your regular code editing tab or window uncluttered with the log and debugger panes. Simply close the "Debug" window when you're done running and you can be back to your clean screen of code.
In XCode3, There was an option for "Rename the Project". Now, you just need to click twice ( second click slowly ) to rename the project & Its done.
To Limit the Number of Concurrent Build Operations
This is a (somewhat) hidden preference which allows you to define the number of concurrent compile tasks:
defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4
To Disable Indexing in the IDE
This one disables code sense indexing, which can save a lot of resources in large projects:
defaults write com.apple.dt.XCode IDEIndexDisable 1
to reenable:
defaults delete com.apple.dt.XCode IDEIndexDisable
Note that you should quit Xcode, set the preference values as desired, changes take effect when you restart Xcode.
If you prefer using vim/emacs running on, say, Terminal, or any other external editor, you can just create your xcode project, add files and whatnot and then switch to editing said files using whichever edit suits you best; whenever you switch focus to an xcode4 window, the modified files will be reloaded( was also the case with Xcode3 ) and you can build / run your application.
Two kinds of Build location specification using XCode4 Preferences.
Location Specified By Targets - 'Build' Directory is located within your project directory.
Location in Derived Data ( Recommended by XCode, as you can see in screen shot ) - 'Build' Directory is located under DerivedData location specified ( e.g. here in my case, /Users/digicorp/Library/Developer/XCode/DerivedData )
Please look at following screen shots.
QUICK HELP
Ctrl + Option / Alt + f
Find the Quick help. For example,
#property (nonatomic, retain) NSString *strQuery;
My Text cursor is at NSString & if I press Ctrl + Option + f then It will show a quick documentation in the inspector/utilities.

Manipulating text in XCode, moving one line

In emacs I have various functions to manipulate text. Now that I'm using xcode, I suppose I could make emacs my default editor, but I want to browse obj-c objects and such, so I'd rather just implement my most used text manipulation commands for xcode.
First on my list, I'd like a command that moves the text of the current line up/down one line, keeping the cursor on the current line.
In emacs this is:
(defun move-one-line-downward ()
"Move current line downward once."
(interactive)
(forward-line)
(transpose-lines 1)
(forward-line -1))
I'd be happiest if I could write a script in Python that would do the equivalent in XCode, but as far as I can tell, I need to talk to AppleScript to do this.
Can someone walk me through how to do this with XCode?
Xcode 4 has a new set of command for moving the line where the cursor is or the selected text with command + option + [ or ]
⌥⌘[ or ⌥⌘]
http://developer.apple.com/library/mac/#documentation/IDEs/Conceptual/xcode_help-command_shortcuts/MenuCommands/MenuCommands014.html
What you’re wanting to do can be achieved through Xcode’s “User Scripts”—and it helpfully comes with a pair of scripts that almost do what you want. (I’m using Xcode 3.2 here, but I think these were also there in 3.1)
Look in /Developer/Library/Xcode/User Scripts/; there are two applescripts there, Move Line Up.scpt and Move Line Down.scpt. Here’s what’s in Move Line Up:
(*
To edit this script, choose Save As... and save it in your home directory, then re-add it to the User Scripts list.
*)
using terms from application "Xcode"
tell first text document
set {startLine, endLine} to selected paragraph range
if startLine > 1 then
set theText to (paragraphs startLine through endLine)
set theText to (theText as string)
delete (paragraphs startLine through endLine)
make new paragraph at beginning of paragraph (startLine - 1) with data theText
set selected paragraph range to {startLine - 1, endLine - 1}
else
beep 1
end if
end tell
end using terms from
These almost do what you want, except they select the whole line afterwards; I’m no applescript expert, but you probably want to store the selected character range. Have a look at the Xcode scripting dictionary (in AppleScript Editor, File -> Open Dictionary -> Xcode) to find out the types of objects you can manipulate.
You can add your own scripts to Xcode with the “Edit User Scripts”menu item in the script menu; and assign shortcut keys to the scripts in that window also, by double-clicking in the right-hand column beside the entry for the script menu item.
You can also use shell scripts (perl, python, bash, whatever) in the User Scripts menu, but these process only the selection or the whole file, so might be a bit heavyweight for moving a single line up or down.
See all the docuemntation on User Scripts here: http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeWorkspace/310-User_Scrips/user_scripts.html
I hope this helps!
I think your question is more generic that Xcode/emacs. Most IDE can't do stuff that editors can do and vice versa.
What I do is to use Xcode for 'simple' stuff and compile/debug. When I want to do lot's of coding (hm ... text editing) I open multiple files in one Vim (no offense to emacs ... vim is my editor of choice) and use all the vim tricks available.
I follow the same process when I need to do lots of coding on Windows (Visual Studio). I have VS opened just for compiling/debugging but I do most coding in separate Vim window.
I don't need to do any of that on Unix because I just open file in Vim and run Makefile from within Vim, jumping directly to errors and so on (:mak) ...
I'm sure that there are some extremely clever things to get Xcode do stuff that are already in Vim and Vim to do stuff that Xcode can do but I'm focusing on coding so not much time to play around.
Also, you can hook up emacs (or vi, or bbedit, or ed, I imagine) to xcode, so that they will talk to each other. When you tell xcode to open a file it will call emacsclient, etc. You can even get emacs to tell xcode where to put a breakpoint (I don't remember how, but I asked a question here a while back, and it works great)

Resources