Kephra / lib / Kephra / API.pm

use strict;
use warnings;
use Carp;
use Kephra::API::Command;
use Kephra::API::Docs;
use Kephra::API::Event;
use Kephra::API::KeyMap;
#use Kephra::API::Macro;
#use Kephra::API::Plugin;
#use Kephra::API::Sandrum;
use Kephra::App::Focus;
use Kephra::App::Window;
use Kephra::File;
use Kephra::Config;
use Kephra::Help;
use Kephra::Log;
#use Kephra::Worker;


package Kephra::API;
my $VERSION = 0.1;

Kephra::API::Command::switch_variables({
 '$app'    => { switch => 'app',         class => 'Kephra::App' },
 '$win'    => { switch => 'main_window', class => 'Kephra::App::Window' },
 '$docbar' => { switch => 'docbar',      class => 'Kephra::App::Bar::Document' },
 '$doc'    => { switch => 'document',    class => 'Kephra::Document' },
 '$ed'     => { switch => 'editor',      class => 'Kephra::App::Editor' },
});
Kephra::API::Command::init();
Kephra::Config::init();

Kephra::API::Command::register_switch_var({
	'$app'    => 'app',
	'$win'    => 'main_window',
	'$docbar' => 'docbar',
	'$doc'    => 'document',
	'$ed'     => 'editor',
});

sub app             { $Kephra::App::_ref }
sub main_window     { $Kephra::App::Window::_ref }
sub editor          { Kephra::API::Docs::active_editor() }
sub docbar          { Kephra::App::Part::Editor::active_docbar() }
sub document        { Kephra::API::Docs::active_doc() }
sub all_documents   { Kephra::API::Docs::all_doc() }
sub do_with_all_documents { }

sub focus           { Kephra::App::Focus::set(@_) }
sub focus_back      { Kephra::App::Focus::set_back(@_) }

# IO-unit
sub input  {main_window()->{'part'}{'iounit'}->get_line() if ref main_window() and exists main_window()->{'part'}{'iounit'} }
sub output {main_window()->{'part'}{'iounit'}->output(@_) if ref main_window() and exists main_window()->{'part'}{'iounit'} }
sub log    {main_window()->{'part'}{'iounit'}->output('log', @_) if ref main_window() and exists main_window()->{'part'}{'iounit'} }

sub configs  { }

# command list
sub add_command { }
sub del_command { }
sub run_command { }
sub command_status {}

# cmd line lang
sub run_sandrum_commands {}

# event table
sub add_event_callback { }
sub del_event_callback { }
sub trigger_event      { }
sub freeze_event       { }
sub thaw_event         { }

# plugin API
sub register_plugin {}
sub get_plugin_status {}
sub get_plugin_data {}
sub available_plugins {}
sub unregister_plugin {}



1; # if you want to know more, please read Kephra::Internals.pod
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.