Frequently Asked Questions About Studio
A Question and Answer Set about Studio.
What is a project?
A project is a collection of class definitions and routines that you can group together for the sake of convenience.
Using projects gives you an easy way to return to your work when you start a Studio session. For example, you can place all the classes related to an application, or part of an application, in a project. When you start Studio, open this project and the Project tab of the Workspace window displays all the classes in a convenient list.
You can also export and import entire projects to and from a single external file, making it easy to save or pass around application code.
How do I add an item to a project?
Here are some of the ways to add items to the current project:
Before opening one or more items (with File > Open), select the Add to Project check box in the Open dialog.
To add the item in the current editor window to the current project, select Project > Add Item.
In the workspace window, highlight an item, right-click, and select Add to Project.
Can I add something from another namespace to my project?
No. A project can only contain items that are visible to the current InterSystems IRIS namespace.
Can an item belong to multiple projects?
Yes. A project is a specified set of items (class definitions and routines) that you choose to group together. The items themselves have no link back to the projects they may belong to. There is no limit to how many projects an item can belong to.
What if I don't want to use projects?
You are not required to use projects with Studio; you can completely ignore them if you like. To ignore projects, do not add any items to the default project and ignore the prompt asking you if you want to save your project when you exit Studio.
Can I export a project?
Yes. Select Tools > Export > Export Project. Enter a file name and press OK. This exports the entire contents of the current project (including the project definition) to a single XML file.
How do I delete a project?
Select File > Open to list all your projects. Right-click a project and select Delete.
Note that you can use File > Open to delete any type of item on the server in this way.
How do I open a class definition?
To open an existing class definition (that is, one saved on the InterSystems IRIS server), do the following:
Make sure you are connected to the InterSystems IRIS namespace and server containing the class definition.
Select File > Open.
In the Open dialog, make sure that class definitions are listed by selecting Class Definitions (.CLS) or All in the File Types combo box.
Package names are listed in the file list as folders. Select a package name to list all the classes (or subpackages) within the package.
Double-click a class name to open it.
Alternatively, you can enter the name of the class you want directly into the filename edit box with a .cls extension (such as Sample.Person.cls) and select Open.
How do I open a routine?
To open an existing routine (that is, one saved in the InterSystems IRIS server), do the following:
Make sure you are connected to the InterSystems IRIS namespace and server containing the routine.
Select File > Open.
In the Open dialog, make sure that routines are listed by selecting either MAC routines (.MAC), INT routines (.INT), or All in the File Types combo box.
Double-click a routine name.
Alternatively, you can enter a routine name with extension directly into the filename edit box (such as MyRoutine.MAC) and select Open.
How do I open a CSP file?
You can open a CSP file in the same way that you open a class definition or a routine. The main difference is that the Open dialog lists CSP Applications (for example, /csp/samples) as folders; select the name of an application to see the CSP pages within it. Using CSP files with InterSystems IRIS is not recommended.
What does the Show System check box in the Open dialog do?
If the Show System check box is selected, then the File > Open dialog lists system items (items whose names start with the % character and are stored in the IRISLIB database) along with items in the current namespace.
Can I use pattern matching in the File > Open dialog?
Yes. You can use the “*” character as a wildcard to match any number of any character as you can in a standard File > Open dialog. You can use file extensions to filter certain items; for example, “*.cls” lists all Class Definitions in the selected package. You can use the “?” character to match any character. These are Windows pattern matching conventions, not InterSystems IRIS pattern matching.
How do I open a routine from a different namespace?
The File > Open dialog lists items from the current namespace and server only. To open a routine from a different namespace or server:
Select File > Change Namespace.
Open the desired routine.
Can I open a % class?
Yes. You can list % classes (classes whose package name starts with a % character and are stored within the IRISLIB database) from the File > Open dialog by selecting the Show System check box at the bottom.
Studio opens % classes as read-only if you open them while connected to a namespace other than %SYS.
What does File > Connect do?
Studio maintains a connection to a specific InterSystems IRIS namespace and server. It uses this connection to provide a list of classes (such as for specifying property types, super classes, etc.). It also uses this connection for debugging. File > Connect lets you connect to a different server.
How do I start the debugger?
You can connect the debugger to a target process in of the following ways:
Define a “debugging target” (name of program or routine to debug) for the current project with Project > Settings. Then select Debug > Go to start the target program and connect to its server process.
Select Debug > Attach to select from a list of running processes on an InterSystems IRIS server.
For more details, refer to the chapter “Using the Studio Debugger” in this book.
How can I debug a class?
The Studio debugger lets you step through the execution of programs running on an InterSystems IRIS server. These programs can include INT files, MAC files, methods within CLS files, server-side methods invoked from Java, or server-hosted applications.
To view the INT file during debugging and to save the INT for further review later, set the Keep Generated Source Code option before you compile your class. This option is located on the Tools > Options > Compiler > Flags & Optimization page.
Set a breakpoint at the desired location in a class method (or any of the other files mentioned above) by pressing F9 (toggles breakpoint) on the desired source line.
Set a debug target to specify where you want the debugger to begin code execution using Debug > Debug Target. Enter the name of the class and the method that you want to step through.
Start the debugger with Ctrl+F5 or Debug > Go.
Can I watch variables?
Yes. While debugging, enter a variable name (or an expression) in the left-hand column of the Studio Watch Window. Each time the debugger pauses, the variable or expression is reevaluated.
What do the different colors in the editor mean? Can I change the colors in the editor?
Studio uses colors to differentiate the syntax elements of a given language.
You can change the colors used for the various syntax elements as follows:
Select Tools > Options > Editor > Colors.
Select a language.
Select an element (comment, variable, etc.)—the list of available elements depends on the selected language.
Select Foreground and Background colors and select OK.
Why is there a wavy, red line underneath my code?
The wavy, red line indicates that the underlined code (or possibly code before it) contains syntax errors.
Does Studio support Kanji and Chinese characters?
Yes. Studio has complete support for Unicode and Kanji characters.
Does Studio support Hebrew and Arabic characters?
Yes. The Studio Editor supports Hebrew and Arabic characters, as well as bidirectional editing.
Can I import class definitions or routines from external files?
Yes. Select Tools > Import.
What is the difference between Local and Remote files?
Studio is a client-server application; Studio itself runs on a client system and talks to a server. The server can either be on the same machine or on a remote machine. Studio uses the terms “Local” and “Remote” to refer to operating system files (such as when you are importing or exporting) that are stored on the client and server systems, respectively.
If both the client and server are on the same system, there is no difference between Local and Remote.
Can I print from Studio?
Yes. Select File > Print or File > Print Preview.
What is a Template?
Templates are a mechanism for creating user-defined Studio add-ins. A template is a program that enters a code fragment into the current document at the current cursor point. You can customize the code fragment to your needs. See the chapter “Using Studio Templates” in this book for more information.
Is there a list of available Templates?
Yes. Select Tools > Templates > Templates.
Can I create a new Template?
Yes. See the chapter “Using Studio Templates” in this book.
Does Studio support development by multiple users?
Yes. You can do this in several ways:
Set up a common InterSystems IRIS server system and have all developers store their code on it.
Use local InterSystems IRIS servers (on the developer's system) and store source code in a source control system as exported XML files. See Integrating InterSystems IRIS with Source Control Systems for more information.
What happens if I try to open a class (or routine) that someone else is editing?
Studio displays a dialog stating that the class (or routine) is in use by someone else and asks you if you want to open it in read-only mode.
What if someone wants to edit a super class of a class that I am working on?
Studio does not prevent another developer from modifying the super class of a class you are working on.
While Studio could take out locks on all subclasses whenever a class is opened for editing, in practice this would be annoying and unwieldy. Instead, a development team needs to work out rules and procedures for defining and modifying super classes. This is similar to how development teams in other languages (for example, Java) usually work with class definitions in source control systems.
How do I create a new class?
Use the File > New and select Class Definition. This invokes the New Class Wizard.
For more details, see the chapter Class Definitions in this book.
Can I see the source code generated for my class?
Yes. You can see all the source code generated by the Class Compiler with View > View Other Code (available when the current window contains a class definition).
Make sure that the Keep Generated Source Code option is set before you compile your class. This option is located on the Tools > Options > Compiler > Flags & Optimization page.
When I try to compile my class, Studio says it is up-to-date and does not need to be compiled. Can I force a compile to happen?
Yes. Turn off the Skip related up-to-date documents option. This option is located on the Tools > Options > Compiler > Flags & Optimization page.
How do I create an INT routine?
Create a new ObjectScript routine by selecting File > New and then save the new routine using a name with a .INT extension. You can create an include (.INC) file in the same fashion.
How do I define an SQL View?
Studio does not include a mechanism for defining SQL views. To do this, as well as other SQL tasks, use the Management Portal.
Does Studio integrate with external Source Control systems?
Yes. For details, see Integrating InterSystems IRIS with Source Control Systems.
Can I connect a Studio client to any InterSystems IRIS server?
A Studio client must be running either the same version of InterSystems IRIS or a higher version than the InterSystems IRIS server that it is connecting to.
Can I run Studio on Linux?
The Studio client only runs on Windows platforms. You can use a Windows-client to talk to any server. You can also use a partition manager, such as VMWARE, to run both Windows and Linux partitions on your development system and run Studio in the Windows partition with InterSystems IRIS running in the Linux partition. The only trick is to configure your networking so that the Windows partition can talk to the Linux partition via TCP/IP. Studio can also run under Windows on an Intel-based Macintosh.
Why doesn't Studio use the licensed components of Microsoft Visual Studio?
There are several reasons why Studio was built from the “ground up” instead of licensing or extending Visual Studio:
The Studio editor uses advanced parsing technology not available within the Microsoft Studio framework.
Microsoft cannot guarantee the compatibility of future versions of Visual Studio.
Why wasn't the Studio interface developed using Java?
At this time, the only way to get acceptable performance for the Studio editor is to use direct calls to the Windows API. While there are syntax-coloring editors developed using Java, they do not offer the sophisticated multi-language parsing used by Studio and they typically require very high performance computers for decent performance.