NAME

App::Codit - IDE for and in Perl

DESCRIPTION

Codit is a versatile text editor / integrated development environment aimed at the Perl programming language.

It is written in Perl/Tk and based on the Tk::AppWindow application framework.

It uses the Tk::CodeText text widget for editing.

Codit has been under development for about one year now. It has gone quite some miles on our systems and can be considered beta software as of version 0.10.

It features a multi document interface that can hold an unlimited number of documents, navigable through the tab bar at the top and a document list in the left side panel.

It has a plugin system designed to invite users to write their own plugins.

It is fully configurable through a configuration window, allowing you to set defaults for editing, the graphical user interface, syntax highlighting and (un)loading plugins.

Tk::CodeText offers syntax highlighting and code folding in plenty formats and languages. It has and advanced word based undo/redo stack that keeps track of selections and save points. It does auto indent, bookmarks, comment, uncomment, indent and unindent. Tab size and indent style are fully user configurable.

RUNNING CODIT

You can launch Codit from the command line as follows:

codit [options] [files]

The following command line options are available:

-c or -config

Specifies the configfolder to use. If the path does not exist it will be created.

-h or -help

Displays a help message on the command line and exits.

-i or -iconpath

Point to the folders where your icon libraries are located.*

-t or -icontheme

Icon theme to load.

-P or -noplugins

Launch without any plugins loaded. This supersedes the -plugins option.

-p or -plugins

Launch with only these plugins .*

-s or -session

Loads a session at launch. The plugin Sessions must be loaded for this to work.

-y or -syntax

Specify the default syntax to use for syntax highlighting. Codit will determine the syntax of documents by their extension. This options comes in handy when the file you are loading does not have an extension.

-v or -version

Displays the version number on the command line and exits.

* You can specify a list of items by separating them with a ':'.

TROUBLESHOOTING

Just hoping you never need this.

General troubleshooting

If you encounter problems and error messages using Codit here are some general troubleshooting steps:

Use the -config command line option to point to a new, preferably fresh settingsfolder.
Use the -noplugins command line option to launch Codit without any plugins loaded.
Use the -plugins command line option to launch Codit with only the plugins loaded you specify here.

No icons

If Codit launches without any icons do one or more of the following:

Check if your icon theme is based on scalable vectors. Install Icons::LibRSVG if so. See also the Readme.md that comes with this distribution.
Locate where your icons are located on your system and use the -iconpath command line option to point there.
Select an icon library by using the -icontheme command line option.

Session will not load

Sometimes it happens that a session file gets corrupted. You solve it like this:

Launch the session manager. Menu->Session->Manage sessions.
Remove the affected session.
Rebuild it from scratch.

Sorry, that is all we have to offer.

Report a bug

If all fails you are welcome to open a ticket here: https://github.com/haje61/App-Codit/issues.

BASECLASSES

Codit comes with the base class App::Codit::BaseClasses::TextModPlugin. It is used by several plugins. You can use it to define your own plugin.

EXTENSIONS

Codit uses the following extensions from Tk::AppWindow:

Art see Tk::AppWindow::Ext::Art
ConfigFolder see Tk::AppWindow::Ext::ConfigFolder
Daemons see Tk::AppWindow::Ext::Daemons
Help see Tk::AppWindow::Ext::Help
Keyboard see Tk::AppWindow::Ext::Keyboard
Panels see Tk::AppWindow::Ext::Panels
Plugins see Tk::AppWindow::Ext::Plugins
Settings see Tk::AppWindow::Ext::Settings
StatusBar see Tk::AppWindow::Ext::StatusBar
ToolBar see Tk::AppWindow::Ext::ToolBar

Codit has its own extension as multiple document interface.

CoditMDI see App::Codit::Ext::CoditMDI

PLUGINS

Codit comes with these plugins:

Backups see App::Codit::Plugins::Backups
Bookmarks see App::Codit::Plugins::Bookmarks
Colors see App::Codit::Plugins::Colors
Console see App::Codit::Plugins::Console
FileBrowser see App::Codit::Plugins::FileBrowser
Git see App::Codit::Plugins::Git
PerlSubs see App::Codit::Plugins::PerlSubs
PodViewer see App::Codit::Plugins::PodViewer
SearchReplace see App::Codit::Plugins::SearchReplace
Sessions see App::Codit::Plugins::Sessions
Snippets see App::Codit::Plugins::Snippets
WordCompletion see App::Codit::Plugins::WordCompletion

CONFIG VARIABLES

Codit defines one config variable.

Switch -uniqueinstance

Boolean flag. Default value 0. If set only this instance is used for opening files through the command line.

METHODS

App::Codit inherits Tk::AppWindow and all of its methods.

abbreviate($string, ?$size?, ?$firstsize?)

Shortens $string to $size by leaving out a middle part. Then returns it. $size is set to 30 unless you specify it. $firstsize is set to 25% of $size unless you set it.

mdi

Returns a reference to the CoditMDI extension.

panels

Returns a reference to the Panels extension.

Returns a reference to the SideBars extension.

ToolBottomPageAdd($name, $image, $text, $statustext, $initialsize)

See also the pageAdd method in Tk::AppWindow::Ext::SideBars. Adds a new page to the tool panel at the bottom of the CENTER window. Creates the notebook widget if it does not exists.

ToolBottomPageRemove($name)

See also the pageDelete method in Tk::AppWindow::Ext::SideBars. Removes page $name from the tool panel at the bottom of the CENTER window. Removes the notebook widget if it holds no more entries.

ToolNavigPageAdd($name, $image, $text, $statustext, $initialsize)

See also the pageAdd method in Tk::AppWindow::Ext::SideBars. Adds a new page to the navigator panel at the left.

ToolNavigPageRemove($name)

See also the pageDelete method in Tk::AppWindow::Ext::SideBars. Removes page $name from the navigator panel at the left.

ToolRightPageAdd($notebook, $name, $image, $text, $statustext, $initialsize)

See also the pageAdd method in Tk::AppWindow::Ext::SideBars. Adds a new page to the tool panel at the right of the application window. Creates the notebook widget if it does not exists.

ToolRightPageRemove($page)

See also the pageDelete method in Tk::AppWindow::Ext::SideBars. Removes page $name from the tool panel at the right of the application window. Removes the notebook widget if it holds no more entries.

LICENSE

Same as Perl.

AUTHOR

Hans Jeuken (hanje at cpan dot org) =head1 BUGS AND CAVEATS

If you find any bugs, please contact the author.

SEE ALSO

Tk::AppWindow
Tk::AppWindow::OverView
Tk::AppWindow::CookBook
Tk::AppWindow::Ext::MDI
Tk::AppWindow::Ext::Plugins
App::Codit::Ext::CoditMDI