How to print to console using swift playground? - xcode6

I have been following the Apple Guide for their new language swift, but I don't understand why the bar on the right is only showing "Hello, playground" and not "Hello, world". Can someone explain why the println isn't being printed on the right?
// Playground - noun: a place where people can play
import Cocoa
var str = "Hello, playground"
println("Hello, world");

In Xcode 6.3 and later (including Xcode 7 and 8), console output appears in the Debug area at the bottom of the playground window (similar to where it appears in a project). To show it:
Menu: View > Debug Area > Show Debug Area (⌘⇧Y)
Click the middle button of the workspace-layout widget in the toolbar
Click the triangle next to the timeline at the bottom of the window
Anything that writes to the console, including Swift's print statement (renamed from println in Swift 2 beta) shows up there.
In earlier Xcode 6 versions (which by now you probably should be upgrading from anyway), show the Assistant editor (e.g. by clicking the little circle next to a bit in the output area). Console output appears there.

you need to enable the Show Assistant Editor:

Just Press Alt + Command + Enter to open the Assistant editor. Assistant Editor will open up the Timeline view. Timeline by default shows your console output.
Additionally You can add any line to Timeline view by pressing the small circle next to the eye icon in the results area. This will enable history for this expression. So you can see the output of the variable over last 30 secs (you can change this as well) of execution.

You may still have trouble displaying the output in the Assistant Editor. Rather than wrapping the string in println(), simply output the string. For example:
for index in 1...5 {
"The number is \(index)"
}
Will write (5 times) in the playground area. This will allow you to display it in the Assistant Editor (via the little circle on the far right edge).
However, if you were to println("The number is \(index)") you wouldn't be able to visualize it in the Assistant Editor.

As of Xcode 7.0.1 println is change to print. Look at the image. there are lot more we can print out.

move you mouse over the "Hello, playground" on the right side bar, you will see an eye icon and a small circle icon next it.
Just click on the circle one to show the detail page and console output!

for displaying variables only in playground, just mention the variable name without anything
let stat = 100
stat // this outputs the value of stat on playground right window

Related

IntelliJ: How can I permanently enable line preview on moving caret to ending braces?

Moving the caret to the ending braces of a statement (method, class, if/else, etc) will show me a preview of the beginning of the statement on top of the editing window if it is out of screen bounds. Here is a picture for clarity.
Screenshot of tooltip
What is this feature called and how do I enable it such that the statement preview shows even if my caret is in within the braces and not on the ending brace?
View | Context Info — Alt (Ctrl+Shift on Mac) + Q.
That tool tip was called "context info" and similar information can displayed by going to settings > Editor > General > Appearance > show breadcrumbs

Can not find output for println in IntelliJ IDEA 2017.2.5

I am beginner with java and with IntellJ. I did my 'Hello-world' but result does not appear anywhere. I did search for help and I found many this kind of answers like this, which does not help me: Where to find the output of "system out" in Intellij IDE?
In my case, output lines are just skipped, only beginning and end lines are existing. Please, anyone can help? I include the snapshot of my screen
You are running the main method of a class called "Main" as you can see at the top of the console (little tab that reads "Main").
By default IntelliJ uses the class name that contains the main method as name of the so called run configuration. You can change that in the top right as well (little combobox with the same content as the tab -> Edit Configurations).
To now correctly run your "Hello" program that contains the output use one of the play buttons next to the editor. That should then add a new tab with the text "Hello" on it which should have your desired output in the console.

Multiple "right margins" or guides in PHPStorm

PHPStorm has a vertical line on what they call the "right margin" which is set by default to 120 characters or columns...
Given that PSR standards state There MUST NOT be a hard limit on line length; the soft limit MUST be 120 characters; lines SHOULD be 80 characters or less., it'd be nice if I could get another visual indicator at the 80 character mark...
I'm well aware that it says what line/column you're on in the status bar, but I typically hide most panels (status bar included) while coding.
Therefore, is there a way (feature or plugin) that would allow me to add a 2nd vertical line to indicate the 80th column?
It is not currently possible .. and no plugin comes into my mind.
https://youtrack.jetbrains.com/issue/IDEA-99875 -- star/vote/comment to get notified on progress.
P.S. Considering that this is rather PHP/Python specific (other languages do not care about this) .. I would not expect JB to have it implemented in nearest future...
I suggest the following workaround, it works for me on PhpStorm 9.0:
Open Settings page (usually Ctrl+Alt+S), go to Plugins -> Browse Repositories
Find and install BackgroundImage plugin
Restart IDE, it may output an error, something like "unknown protocol d" - don't worry, go forth
Make an image with height=1px, and width=(desired width of additional margin). Give it, say, white background and paint one rightmost pixel to say, black. I took a screenshot of an editor and cropped it in PS, to avoid annoying search and adjustment of the image width. Every change of background image requires to restart PhpStorm.
Open Settings again, goto Other settings -> BackgroundImage
Set Enabled checkbox, browse your created image, and check the FileSystem radio button
Restart IDE again and change the margin and you will get two margins
The image is left-aligned, so when you resize an editor on x-axis (move the splitter between Editor and Project View or File System View, etc.), the margin will remain truthy.
Some side-effects - it appears also on console window, event log, perhaps somewhere else.
If the plugin doesn't work, check out this page (there said that most JetBrains plugins should work on all products on IntelliJ Platform, and some workaround if they does not): http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
ADDED: Doesn't work with scaling an editor (Ctrl + MouseWheel) - the scale of the image (fake margin), remains the same and the margin becomes not truthy.
In the latest PHPStorm, this is now possible. This would be PHPStorm 2017.3. The instructions on the ticket mentioned in the accepted answer explains it quite well:
Will be available in the next EAP build. You can set it up at
Settings|Editor|Code Style|Visual guides for all languages or on
"Wrapping and Braces" tab for a specific language ("Other" tab for
XML/HTML). You can change the visual indent guide color at
Settings|Editor|Color Scheme|General|Guides|Visual guides. Please
submit separate reports if you find any problems.
I personally found the setting in Settings|Editor|Code Style|PHP|Wrapping and Braces|Visual guides. It should be there for every language.

Choose a snippet from the AutoComplete window in Xamarin Studio

I am running Xamarin Studio 4.2.3 on Windows. I have it set to show the autocomplete window automatically when typing... so for instance, when I type cw the following appears:
The editor will allow me to choose CswWriter from the list and press either TAB or ENTER to replace the cw with CswWriter.
However... it will not allow me to choose the cw snippet from the dropdown. I also dug through the Key Bindings dialog looking for the ability to bind something like "Expand Snippet" to a key and did not see it.
Anyone know what's going on? How do I expand the snippet?
I CAN bind a key to "Insert Template...", which pops up another autocomplete-like window with only code snippets in it... but why put them in the normal autocomplete if it won't actually let you choose them?
Xamarin Studio has similar behaviour to Visual Studio. To expand the snippet you need to press tab when the completion window is closed.
When you type in cw, the auto-completion window is displayed, pressing tab will then complete the text, in this case cw, which you have already written. Now if you press tab again the code snippet will be expanded.
The first tab key press in your example is a bit confusing since you have already typed in the full text, however for longer code snippet names (e.g. 'prop' and you have typed in just 'pr'), it is less confusing since you will complete the text for the code snippet with the initial tab key press, then pressing tab again will expand it.
Visual Studio displays the message "Press TAB twice to insert the snippet" in the code completion window to make it more obvious what you need to do.

How do you watch or evaluate an expression in xcode like visual studio's immediate window?

In MS visual studio we just right click add watch.
How does one do this in Xcode?
Use the po command in the Debug area
Set up a breakpoint on the relevant area of code, then when the program stops at the breakpoint, enter commands in the Console in the Debug Area.
The relevant command is po (print object) followed by the expression you want to evaluate.
If the Debug window is not visible in XCode, you can show it via the top menu:
'View' -> 'Debug Area' -> 'Activate Console' (XCode v8.x)
Example
To evaluate an expression like var1/var2 where var1 and var2 are both doubles, enter the following in the Console:
po var1/var2
The Console will return something like:
(double) $2 = 3.085 [no Objective-C description available]
Showing object properties
You can also return a particular property of an object currently used in the code at that breakpoint:
po [bankInfo city]
And it will return something like:
(id) $4 = 0x000069e8 Testville
Note though that the Console doesn't seem to like the dot notation and prefers the square brackets when applicable. For example, this returns an error for me:
po bankInfo.city
I hope this is what you've been looking for.
Gabe's answer is almost there but missing one crucial detail: Select Debugger Output . By default the bottom option is set to Target Output, so the po command doesn't show you anything.
Here is a sandwich app from a tutorial I'm debugging:
Being an xcode newbie and coming from a MS Visual Studio Background, I wanted exactly what the OP was looking for. While playing around from reading Gabe's answer I selected Debugger Output and got what I wanted.
My seniors told to use NSLog(#variable)..........
Set some breakpoints in the begginning of the looping and functions. Once u click on the breakpoint(one similar to arrow) button in the editor window the "Build and debug tool" will get enabled. You can then go to the debugger by clicking the debugger icon. on the right of the debugger window variables will be visible select self->then the instance variable u r going to set watch point.Right click on that and select "watch variable".A trigger point will be set and you will be notified with the value of the variable when changed.
As fas as i understand you would like to see when a variable is changing. For this make a breakpoint and right click on it and choose Edit Breakpoint. A window will appear:
Make sure you choose the right action like Debugger Command or Log Message and check the tick down at the options Automatically continue after evaluating. So you get some kind of action (e.g. logging, sound, etc) and wont stop at the breakpoint.
If you want to know when the variable changes, use a "watch":
Set a breakpoint somewhere in the class in question;
Run the app in the debugger and let it stop at your breakpoint; and
Go to the "Variables" view in the left side of the bottom "Debug" panel and right click on the property in question and choose "Watch".
For example, here, I've stopped at a breakpoint in viewDidLoad, and added a "watch" for total:
(This is Swift, but the same is true for Objective-C, too.)
Now, if I "continue" execution (), Xcode will pause whenever this property changes and I can see at what line of code total is changing, the stack trace to get to that point, etc.