ActiveState Docs

Komodo 6.0 Documentation

Komodo's editor has extensive code intelligence features for
JavaScript, HTML, XML, XSLT, Perl, PHP, Python, Ruby, and Tcl.
and provides syntax highlighting and common editor features for
most other programming languages. Many of these features can be
customized in Komodo's editor preferences.

Right-clicking in the editor pane brings up a context menu
with common editing functions. In addition to standard Cut, Copy,
Paste, Select All, and Print commands, the following options are
available:

Show Unsaved Changes: Opens a window
showing changes made to the file since the last time it was
saved (in unified diff format). Press F8 to
jump to the next change, F7 to jump to the
previous change, F9 jump to a highlighted
change in the original file, and Esc to close
the window.

As you write code in the editor, Komodo periodically checks
for syntax errors. Syntax errors are underlined with a red wavy
line; syntax warnings are underlined with a green wavy line.
Komodo uses the language interpreter's own error-checking
functions, so there may be slight differences in the way that
syntax errors are detected and displayed depending on the version
of the interpreter.

The syntax checking icon in the status bar displays the syntax
status of the current file displayed in the Editor Pane:

A green check mark over the icon
indicates that the language interpreter does not detect any
warnings or errors in the program.

A red exclamation mark over the
icon indicates one or more errors. To see the number of errors
and warnings contained in the program, hover your mouse pointer
over the syntax checking icon. A pop-up tool tip will display
the total number of errors and warnings.

An hourglass over the icon
indicates that syntax analysis is in progress.

You can view the error message from the interpreter in the
status bar if the editing cursor is on the same line as the
error. If it is not, hover the mouse pointer over the error and
the interpreter error will be displayed in a pop-up tool tip.

To move the editing cursor to the line containing the error or
warning, double-click the syntax checking icon. If there are
multiple errors or warnings, each time you double-click the icon,
the editing cursor will move to the next error.

If background syntax checking is disabled in Preferences,
shift-click on the syntax checking icon to check the syntax of
the file.

Right-clicking on the syntax checking icon brings up the
context menu.

Check syntax now (same as shift-click)

Jump to next result (same as double-click)

Clear warning/error squigglies

Komodo supports background syntax checking for the following
languages:

Autocomplete and calltips are two related features to help you
write code more efficiently.

Autocomplete presents a pop-up list of
relevant choices at certain trigger points as you are editing a
document. Autocomplete functionality varies according to
language; for example, Python autocomplete lists object methods
when you type the '.' (period) trigger character, Perl
autocomplete lists available sub-packages when you type the '::'
trigger string in a "use" statement, and XSLT autocomplete lists
appropriate element and attribute names when starting XML
tags.

Use the arrow keys to scroll through the list; use the 'Tab'
or 'Enter' key to insert the currently selected item into your
document; use the 'Esc' key to cancel the pop-up list.

A calltip presents you with a call signature
for, and possibly a short description of, a function or method
call.

Generally, a calltip is opened when you enter the open
parenthesis, "(", of a function call. However, this varies
according to language. Use the 'Esc' key to close the
calltip.

Komodo includes autocomplete and calltip support for several
languages. Language-specific functionality for each supported
language is described below.

Komodo supports the following types of Perl autocomplete and
calltips:

Autocomplete for sub-modules in use
statements: Available sub-modules are listed upon
entering "::" in use and require
statements. For example:

use LWP::|

Autocomplete for sub-modules, subroutines, and
variables: Sub-modules, subroutines, and variables
are listed upon entering "::" in a fully qualified Perl name.
For example:

use LWP;
$HTTP::Request::|

Autocomplete for module subroutines:
Subroutines are listed upon entering "->" after a module
name. For example:

use LWP;
LWP::UserAgent->|

Autocomplete for object methods: Object
methods are listed upon entering "->" after an object
reference. For example:

use Data::Dumper;
my $d = Data::Dumper->new($foo);
$d->|

Calltips for subroutine calls: A calltip
is shown for subroutine and object method calls upon entering
"(" after a sub-routine name, if information is available for
that subroutine. Note: Perl supports
subroutine calls without the parentheses. Komodo only triggers
a calltip without the parentheses for certain built-in Perl
functions such as, "chdir", "split", "join", etc.

A Perl autocomplete list or calltip can also be explicitly
initiated by typing 'Ctrl'+'J' ('Cmd'+'J' on Mac OS X).

Komodo supports the following types of Python autocomplete and
calltips:

Autocomplete for object methods and
attributes: Object methods and attributes are listed
upon entering "." after an object reference. For example:

import sys
sys.|

This also applies to strings. For example:

"This is a string".|

Autocomplete for import
statements: Modules are listed after an
import or from statement. Available
members (i.e. sub-modules, variables, functions, and classes)
are listed after a from ... import construct.
For example:

from sys import |

Autocomplete for PythonDoc
tags: Tags are listed upon entering "@" at the
beginning of a comment line. For example:

##
# This is the description.
# @|

Calltips for function calls: A calltip
will be shown for function and object method calls upon
entering "(" after the function name -- if information is
available for that function.

A Python autocomplete list or calltip can also be explicitly
initiated by typing 'Ctrl'+'J' ('Cmd'+'J' on Mac OS X).

Classes and Methods: Classes in the
current file, and classes in any included files, are displayed
upon entry of the keyword "new". Methods for a class instance
are displayed after you enter "->" on the instance variable
or alternatively if the scope is inside the class you will get
completions after "this->", "self::", "parent::" operators.
Static and constants are displayed after you enter "::" after
a class name.

Functions: Standard PHP functions and
functions defined within the script (and within any included
files) are displayed after you have typed three characters that
match one or more function names. Function calltips are displayed
after the opening parentheses "(" on a function call.

php|info();
phpversion(|);

Constants: PHP constants are included with
the functions list triggering after three characters have been
typed.

echo "Filename is: " . __F|ILE__ . "\n";

Variables: Variables declared in the
current file, or in any included files, are displayed when you
enter the symbol "$" followed by one letter.

Autocomplete for XSLT elements: A list of
appropriate elements in the XSL-namespace for the current
context is supplied upon entering "<" to start a tag.

Autocomplete for XSLT attributes: A list
of appropriate attributes in the XSL-namespace for the current
element is supplied upon entering ' ' (space) in a tag.

Autocomplete for end-tags: A one item list
containing the appropriate closing tag for the current position
is supplied upon entering '</'.

Autocomplete for output: A list of
elements and attributes for HTML or XML output (as defined in
the method attribute of the
xsl:output element) is supplied upon entering
"<" within xsl:template blocks. If the output
method is a specific dialect of XML, specifying the
publicId or systemId of that dialect
in the doctype-public or
doctype-system (respectively) enables
autocompletion appropriate to that dialect.

Komodo supports XML autocomplete and calltips for basic XML as
well as a a number of XML dialects, including:

HTML

XHTML

SGML

RELAX

RELAX NG

RDF

MXML

XML Schema

Atom

Dublin Core

DocBook

WAP

XSLT

VXML

SVG

MathML

XBL

XUL

XML Catalog

Support for additional XML dialects can be configured by
adding an XML Catalog for
the dialect in the SGML/XML Catalogs
section of the Code Intelligence Preferences.

Komodo supports the following types of XML autocomplete:

Autocomplete for elements: A list of
elements available in the current namespace is supplied upon
entering "<". If the current document's XML dialect is not
recognized (i.e. it is not in the above list or in a configured
catalog), the completion list is drawn from elements used in
the document.

Autocomplete for attributes: A list of
attributes available within in the current element is supplied
upon entering a space after the element name.

Autocomplete for end-tags: A list (of
length one) to close the current tag is supplied upon entering
'</'.

If the document does not have an XML declaration, autocomplete
will default to XHTML 1.1. The DOCTYPE and namespace can be
manually set under File
Properties.

With Enable soft characters selected in
Komodo's editor
preferences, typing one of "[" "{" "(" will put the matching,
highlighted closing character to the right of the cursor. The
highlighting indicates that it's a "soft" character. If you move
over the soft character with navigation keys or move to a new
cursor position outside of the delimiters with the mouse, the
soft characters become fixed (i.e. are inserted as normal text).
You can also "type over" soft characters. For example:

object.method(value|)

Hitting the right arrow key or typing a ")" results in:

object.method(value)|

In most programming languages, typing a string-start character
in a "default" context (i.e. not in a string or comment), will
generate the appropriate soft quote to the right of the cursor.
Komodo is aware that in some languages characters like
single-quote are used to start a comment, so no soft character is
generated.

Cursor movement (e.g. moving over the soft character with the
right-arrow) "hardens" soft characters.

Komodo's syntax coloring, background syntax checking, and
indentation are language-specific. However, Komodo provides the
option to view a file as another language. This is useful when
you open, for example, a Perl file that has no extension. You can
select the Perl language option, then edit the file as a regular
Perl file. Komodo's File Associations do not allow you to set a
language association with a file that doesn't have an
extension.

To view the current file as another language:

On the View menu, select View as
Language.

From the list, select the desired language.

If you have opened a file that does not have a file
association specified in the Preferences dialog box, Komodo
displays the file as text. You can select to view the file as
another language, but Komodo does not remember again. If you will
be working with a new type of file, it is recommended that you
specify a file association.

For example, if you open a DocBook (*.docb) file in Komodo, it
does not have XML syntax coloring. Specify a file association to
tell Komodo to open *.docb files as XML files. For more
information on specifying file associations, see Customizing File
Associations.

If you choose to view a file in a different language and then
save the file, the original language will not be restored when
you re-open the file. If you are unsure of the original language,
you can select View|View As Language|Reset to best
guess. Komodo will ignore the user preference, and
analyze the file in an attempt to determine its language.

The commenting function is used to convert a single line or a
group of lines into a comment, with the syntax appropriate for
the file's language. Komodo supports commenting for the following
languages:

When no text is selected, the Cut and Copy commands operate on the
entire line. For example, pressing 'Ctrl'+'X' while editing a line
will cut the entire line even though there is no selection.
Note: This behavior also applies to blank lines.

Copying or cutting lines repeatedly from the same cursor position
adds each line to the clipboard rather than overwriting the previous
clipboard contents.

If the line number column is
displayed, lines can be selected by and clicking on the line number.
The selection will only be highlighted while the mouse button is
depressed. To select multiple lines click on the starting line number,
press 'Shift', then click the ending line number.

To drag a single line, click the line number and (keeping the left
mouse button depressed) drag it to the desired location. The same
operation can be done with multi-line selections.

To reformat a section of code so that it is left-aligned and
displays within the Edge line column,
select the section of code to be reflowed, and then select
Code|Reflow Paragraph. Alternatively, use the
associated key binding.

Komodo offers integrations with external code formatters. Selected
text, or an entire document can be passed to the formatter, processed,
returned via stdin and reinserted in the buffer. You can add or edit
code formatters in the Code Formatters preferences.

To use a formatter on the current buffer:

Select the formatter from the list under Code|Format
Using. The first sub-menu shows the formatters available
based on Komodo's language detection. Additional formatters are
available under the Other Formatters sub-menu.

Use the Editor: Format Code or Text command
('cmd_format'). Komodo will run the formatter on the selection if
there is one. If there is no selection, the entire document will be
formatted. By default, this command does not have a key binding; you
can assign one in the Key
Bindings preferences.

Note: Komodo uses HTML Tidy as the default
formatter for HTML documents. Since this parser cannot differentiate
between isolated sections of HTML and complete documents, use
Tidy Fragment when formatting selection and
Tidy Document when formatting the entire file.

To insert literal characters into the editor, select
Code|Enter Next Character as Raw Literal, and
then enter the key or key combination representing the literal
character. (Alternatively, use the associated key binding.) For
example, to insert a form feed, enter 'Ctrl'+'L'. The following
characters are common:

To comment a single line of code, place the cursor on the
desired line, then, from the Code menu, select
Comment Region. Alternatively, use the
associated key binding.

To un-comment a line of code, place the cursor is on the
desired line, then, from the Code menu, select
Uncomment Region. Alternatively, use the
associated key binding.

To comment a block of code, select the lines you wish to
comment by clicking and dragging the mouse in the Editor Pane.
Then, from the Code menu, select Comment
Region. Alternatively, use the associated key binding.

To un-comment a line of code, place your cursor is on the
desired line, then, from the Code menu, select
Uncomment Region, or use the associated key binding.

"Tabifying" a region converts leading spaces to tabs. If you
select a line of code that has some leading spaces and you choose
to tabify the region, you convert all the leading spaces into Tab
characters. The Tabify region dialog box sets the ratio of space
characters to Tab characters. If you select 8, then each 8 space
characters will be represented as 1 Tab character.

To tabify a region:

From the Code menu, select Tabify
Region.

In the dialog box, set the number of spaces, from 1 to 16,
to apply to a tab.
Click OK or press Enter.

To untabify a region:

From the Code menu, select
Untabify Region.

In the dialog box, set the number of spaces, from 1 to 16,
to apply to a tab.

Rectangular selection is useful in selecting columns and other
space or tab delimited text.

Platform

Via Mouse

Via Keyboard

Windows

'Alt'+'left-click' + drag

'Alt'+'Shift' + direction key

Mac OS X

'Cmd'+'left-click' + drag

'Ctrl'+'Shift' + direction key

Linux

'Ctrl'+'left-click' + drag

'Alt'+'Shift' + direction key

Cut, Copy, Paste and Delete commands will operate on the
highlighted block.

Note: On Linux, the default key bindings may
conflict with ones used by the window manager. To avoid this, re-map
the "Editor: Select Rectangular..." commands in the Key Binding Preferences to
unused key combinations.

Once a rectangular selection has been made, text insertion will operate
on each line of the selection; the characters will be duplicated on
all selected lines.

For example to change "directory-name" in the file list below,
select the column containing that name as described above.

Once the column is selected, begin typing. The cursor will appear
only at the top line of the selection, but the new text will appear on
all subsequent lines within the colum selection.

Press 'Esc' or any direction key to exit column editing mode.

Note: Column selections in areas beyond line
endings will not appear correctly. The areas beyond the end of line
will not be highlighted, but column editing will still work. Text will
be inserted immediately after the longest line in the selection.

With Vi emulation
enabled, mouse selection and Vi visual blockwise selection
('Ctrl'+'V') will not trigger column editing. While in Input mode, use
'Alt'+'Shift' with the direction keys to make the column selection,
and 'Esc' to exit column editing mode.

The Komodo editor maintains an index of words in the current
file. Rather than re-entering words that already exist in the
current file, use the Complete Word feature to
finish words.

Enter one or more characters, then select
Code|Complete Word, or use the associated
key
binding. Words are completed based on the most recent
occurrence in the current file. For example, if you type "pr",
Komodo searches backward from the insertion point to find the
first instance of a word that begins with "pr". Continue pressing
the spacebar while holding down the 'Ctrl' ('Cmd' on Mac OS X)
key to cycle through all possible completions for the word. The
Complete Word feature is case sensitive.

When the Select Block function is invoked,
Komodo analyzes the cursor position relevant to the blocks of
code in the document. If the cursor is within a block, the entire
block will be selected. (If the cursor is within a nested block,
only the current sub-block will be selected, not the block that
contains the entire nested structure.) If the cursor is not
inside a block, the entire document will be selected.

Indentation guides display vertical lines in the Editor Pane
that indicate the number of whitespace indents. The width of
indentation guides is determined by the value in the Indentation
Width preference. See Customizing
Indentation for more information.

To toggle indentation guides on and off, select
View|View Indentation Guides, or use the
associated key binding.

To increase the font size in the Editor Pane, select
View|Font, and then Increase or
Decrease. Alternatively, use the associated
key
binding. Repeat until the font size is appropriate. The size
specification applies to all files open in the Editor Pane.

In Komodo, you can use fixed width or non-fixed width fonts
for editing. You can also toggle between these settings. The
default font is non-fixed width. Note that this setting does not
persist. If you toggle to a different setting, the next time you
open the file it will restore the width specified on the Fonts
tab of the Fonts and Colors page in Komodo Preferences.

To toggle between fixed and non-fixed width font:

On the View menu, select
Font, then Toggle Fixed/Proportional
Fonts. This changes the font to fixed width.

Code folding symbols appear in the left margin of the Editor
Pane immediately left of the line of code that is or can be
folded. Minus signs indicate the beginning of a block of code
that can be collapsed or folded. Plus signs indicate the
beginning of a block of code that can be expanded or unfolded.
This line of code is also underlined.

Bookmarks are points of interest in a file. Komodo displays
blue triangles on the left margin beside bookmarked lines. Marks,
which are derived from the Emacs editor, are similar to
bookmarks. The key difference is that marks have no graphical
representation in Komodo. Marks make it possible to create an
invisible reminder of previously visited locations in a file.

To set or unset a bookmark: Position the
editing cursor on the line of interest. Select
Navigation|Toggle Bookmark or use the
associated key binding to
bookmark the line. If the line is already bookmarked, the
bookmark will be removed.

To move to the next bookmark: Select
Navigation|Next Bookmark or use the associated
key
binding.

To move to the previous bookmark: Select
Navigation|Previous Bookmark or use the
associated key
binding.

To clear all bookmarks: Select
Navigation|Remove All Bookmarks or use the
associated key
binding.

Use the Matching Brace functions to quickly
jump between opening and closing braces and parentheses. Notice
that when the editing cursor is adjacent to a brace or
parenthesis, the brace is displayed in bold red. The associated
closing or opening brace is also displayed in bold red.

To jump to the matching brace, select Navigation|Jump to
Matching Brace, or use the associated key binding. To
select the braces and the contents they contain, select
Edit|Select|Select to Matching Brace.

Komodo can be configured to monitor the status of files that
are opened in the editor. If the file is changed on disk, you
will be prompted to reload the latest version under the following
circumstances:

You can configure Komodo to preview a variety of file types in
your default browser, or in the Editor Pane. The Preview in
Browser feature is particularly useful when working with HTML or
XML files.

The browser preview will be displayed in a separate window, in
the Editor Pane, or in a split view of the Editor Pane, depending
on which preference has been set.

The context menu in the Editor Pane is only available when the
"source" tab is in focus. If Komodo does not support previewing
of a specific file type, the Preview in Browser option will not
be available from either the toolbar or the View menu.

To preview a file with the Preview in Browser feature:

Open the file in the Komodo Editor Pane. Or, if the file is
already open, make sure it is the selected tab in the Editor
Pane.

Select View|Preview in Browser. A dialog
box will appear, prompting you to choose which file to
preview.

If you want to preview the current file, select
Preview with this file, or, if you want to
preview using another file that includes the current file
(e.g., use an HTML file to preview a CSS file), select
Preview with another file or URL, then click
Browse to navigate to the desired file
location. If you do not want to be prompted each time you
preview a specific file, select Remember this selection
for this file. If you later decide that you want to
specify a different preview selection, change the Browser
Preview file or URL in the current file's Properties and
Settings.

Click Preview. The file will be displayed
in the Editor Pane or in a separate window, depending on which
preference has been set.