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
- MenuBar see Tk::AppWindow::Ext::MenuBar
- Panels see Tk::AppWindow::Ext::Panels
- Plugins see Tk::AppWindow::Ext::Plugins
- Settings see Tk::AppWindow::Ext::Settings
- SideBars see Tk::AppWindow::Ext::SideBars
- 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.
-
See also the pageAdd method in Tk::AppWindow::Ext::SideBars. Adds a new page to the navigator panel at the left.
-
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.