Source

Kephra / lib / Kephra / Document.pm

package Kephra::Document;
use Moo;
use Kephra::API;
use Kephra::File;
use File::Spec;
use Kephra::Log;

has editor => (
	is  => 'rw',
	isa => sub {Kephra::Log::warning("$_[0] is no editor")
				unless ref $_[0] eq 'Kephra::App::Editor'},
);
has panel => (
	is  => 'rw',
	isa => sub {#Kephra::Log::error("$_[0] is no panel")
				#unless ref $_[0] eq 'Wx::Panel' or ref $_[0] eq 'Kephra::App::Panel'
				},
);
has file_path    => ( is  => 'rw', );
has file_dir     => ( is  => 'rw', );
has file_name    => ( is  => 'rw', );
#has content      => ( is  => 'rw' );
has notes        => ( is  => 'rw', );

has syntax_mode  => ( is  => 'rw', default => sub { 'perl' } );
has readonly     => ( is  => 'rw', );
has active_config=> ( is  => 'rw', );
has caret_pos    => ( is  => 'rw', );
has edit_pos     => ( is  => 'rw', );
has coding       => ( is  => 'rw', );
has EOL          => ( is  => 'rw', );
has tab_size     => ( is  => 'rw', );
has tab_use      => ( is  => 'rw', );
has folded_lines => ( is  => 'rw', );
has marked_lines => ( is  => 'rw', );

sub assign_file_path {
	my ($self, $file_path) = @_;
	return unless defined $file_path and -e $file_path;
	if ($file_path){
		$file_path = Kephra::File::normalize_name($file_path);
		$self->file_path($file_path);
		my @path_parts = File::Spec->splitpath( $_[0]->file_path );
		$self->file_dir( $path_parts[1] );
		$self->file_name( $path_parts[2] );
	} else {
		$self->file_path('');
		$self->file_dir('');
		$self->file_name('');
	}
	$self;
}
sub raise {
	Kephra::API::docbar()->raise_page( shift->panel() );
}
sub insert_before_caret {}
sub insert_after_caret {}
sub find {}

1;
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.