File Coverage

lib/Kephra/Config/Default/GlobalSettings.pm
Criterion Covered Total %
statement 6 7 85.7
branch n/a
condition 0 2 0.0
subroutine 2 3 66.6
pod 0 1 0.0
total 8 13 61.5


line stmt bran cond sub pod time code
1             package Kephra::Config::Default::GlobalSettings;
2             our $VERSION = '0.16';
3            
4 1     1   845 use strict;
  1         2  
  1         30  
5 1     1   5 use warnings;
  1         2  
  1         827  
6            
7             sub get {
8             return {
9 0   0 0 0   about => {
10             purpose => 'build in global settings',
11             version => $Kephra::VERSION || 'no',
12             },
13             app => {
14             app_data_sub_dir => 'interface',
15             cache => {
16             file => 'commands.yaml',
17             sub_dir => 'cache',
18             use => 1,
19             },
20             commandlist => {
21             file => 'interface/commands.conf',
22             node => 'commandlist',
23             },
24             contextmenu => {
25             defaultfile => 'interface/contextmenus.yml',
26             id => {
27             document_context => 'editpanel_contextmenu',
28             document_list => '&document_change',
29             document_selection => 'textselection_contextmenu',
30             file_history => '&file_history',
31             insert_templates => '&insert_templates',
32             marker_margin => 'markermargin_contextmenu',
33             status_eol => 'status_lineendchar_contextmenu',
34             status_encoding => 'status_encoding_contextmenu',
35             status_info => 'status_info_contexmenu',
36             status_syntaxmode => 'status_syntaxstyle_contextmenu',
37             status_tab => 'status_whitespace_contextmenu',
38             toolbar_search => 'searchbar_contextmenu',
39             },
40             },
41             error_output => 'panel', # (dialog|console|panel|none)
42             iconset_path => 'interface/icon/set/jenne', # rootpath for all icons
43             localisation => {
44             directory => 'localisation',
45             file => 'english.conf', # file relative to the localisation directory, defines language of the texts in the program
46             },
47             menubar => {
48             file => 'interface/mainmenu.yml',
49             node => 'full_menubar',
50             responsive => 1, # (0|1) 0 prevent menubar item shading
51             visible => 1,
52             },
53             panel => {
54             notepad => {
55             content_file => 'global/data/notepad_content.txt',
56             eval_with => 'eval',
57             font_family => 'Courier New',
58             font_size => 10,
59             size => 180,
60             splitter_pos => 300,
61             visible => 0,
62             },
63             output => {
64             append => 0,
65             back_color => '000022',
66             font_family => 'Arial',
67             font_size => 10,
68             fore_color => 'ffffff',
69             interpreter_path => 'perl',
70             size => 100,
71             visible => 0,
72             },
73             },
74             searchbar => {
75             autofocus => 0,
76             autohide => 0,
77             contextmenu => 'toolbar_search',
78             contextmenu_visible => 1,
79             file => 'interface/appbars.conf',
80             node => 'searchbar',
81             position => 'below', # (above|below|bottom)
82             visible => 1,
83             },
84             statusbar => {
85             contextmenu_visible => 1,
86             file => 'interface/appbars.yml',
87             interactive => 1,
88             node => 'statusbar',
89             msg_nr => 0,
90             visible => 1,
91             },
92             tabbar => {
93             close_button => 'current' ,# (all|current|active|one|right|no) current = active
94             # one = right, on right border
95             contextmenu => 'document_list',# -NI id of connected context menu
96             contextmenu_visible => 1, # (0|1) enable conextmenu over tabbar
97             file_info => 'file_name', # (file_name|firstname) which part of filename to show
98             info_symbol => 1, # (0|1) show *(unsaved) and #(write protected) symbols on end of tabs
99             insert_new_tab => 'rightmost', # (left|right[most]) tab position of opened file
100             mark_configs => 1, # (0|1) set configfile names in square brackets
101             max_tab_width => 25, # max tab width in chars, longer filenames will be cut and ... added
102             middle_click => 'file-close-current',# -NI command that is performed when middle click over tabbar
103             movable_tabs => 1, # (0|1) if 0 tabs can't moved by mouse or key
104             number_tabs => 0, # (0|1) display a number before the file name in the tabs
105             switch_back => 1, # -NI (0|1) switch back if you klick on current tab
106             tablist_button => 1, # (0|1)
107             visible => 1, # (0|1)
108             },
109             toolbar => {
110             contextmenu => 0,
111             file => 'interface/appbars.yml',
112             node => 'main_toolbar',
113             responsive => 1,
114             size => 16,
115             visible => 1,
116             },
117             window => {
118             default => {
119             position_x => 0,
120             position_y => 0,
121             size_x => 800,
122             size_y => 600,
123             },
124             fullscreen => 0,
125             icon => 'interface/icon/app/proton.xpm',
126             max_number => 1,
127             maximize_editpanel => 0,
128             position_x => 10,
129             position_y => 10,
130             save_position => 1,
131             size_x => 660,
132             size_y => 531,
133             stay_on_top => 0,
134             title => '$filepath - $appname $version',
135             # $filepath - path of current file
136             # $filename - just the name.exe
137             # $docnr - nr of current file
138             # $doccount - nr of all opened files
139             # $appname - name of this programm
140             # $version - version of this programm
141             transparency => 0.2, # how much transparent if active, 1 = 100% = invisible
142             transparent => 0, # (0|1) trancparency active ?
143             },
144             xp_style => 1,
145             },
146             dialog => {
147             button_handing => 'right',
148             config => {
149             save_position => 1,
150             position_y => 100,
151             position_x => 100,
152             tooltips => 1,
153             },
154             search => {
155             save_position => 1,
156             position_y => 100,
157             position_x => 100,
158             tooltips => 1,
159             transparency => 0.2, # 0 - full visible .. 1 - invisible
160             width => 436,
161             },
162             },
163             editpanel => {
164             DND_mode => 'copy',
165             auto => {
166             brace => {
167             glue_tangent => 0,
168             indention => 1,# indet after opening braces 1 tab more
169             join => 1, # deletes closing bracket if there are 2 and 1 has no matching partner
170             make => 1, # generates closing bracket for ne blocks
171             },
172             focus => 0, # set focus on editpanel while onmouseover
173             indention => 1, # indents new lines like previous
174             },
175             contextmenu => {
176             ID_margin => 'marker_margin',
177             ID_normal => 'document_context',
178             ID_selection => 'document_selection',
179             visible => 'custom',
180             margin => 1,
181             },
182             control => {
183             mouse => {
184             'left-selection' => 'edit-copy',
185             'left-middle' => 'edit-paste',
186             'left-right' => 'edit-cut',
187             'middle-selected' => 'edit-insert-selection-at-cursor',
188             'middle-selection' => 'find-selection, find-next',
189             'middle' => 'goto-last-edit',
190             },
191             use_advanced_mouse_functions => 1,
192             },
193             font => {
194             family => 'Courier New',
195             size => 10,
196             style => 'normal',
197             weight => 'normal',
198             },
199             history => {
200             fast_undo_steps => '7',
201             },
202             indicator => {
203             bracelight => {
204             back_color => '99ff99',
205             bad_color => 'ff0000',
206             good_color => '0000ff',
207             mode => 'adjacent',
208             visible => 1,
209             },
210             caret => {
211             color => '0000ff',
212             period => 500,
213             width => 2
214             },
215             caret_line => {
216             color => 'f5f5a5',
217             visible => 1,
218             },
219             end_of_line_marker => 0,
220             indent_guide => {
221             visible => 1,
222             color => 'bbbbbb',
223             },
224             right_margin => {
225             color => 'ccccff',
226             position => 80,
227             style => 1,
228             },
229             selection => {
230             back_color => '001177',
231             fore_color => 'f3f3f3'
232             },
233             whitespace => {
234             color => 'cccc99',
235             visible => 1,
236             },
237             },
238             line_wrap => 0,
239             margin => {
240             fold => {
241             back_color => 'fff5f5',
242             fore_color => 'aa9977',
243             flag_line => 1,
244             keep_caret_visible => 1,
245             style => 'boxes', # (boxes|arrows) apearance of the fold marker
246             visible => 1,
247             },
248             linenumber => {
249             autosize => 1,
250             back_color => 'd8d8d4',
251             fore_color => '777788',
252             min_width => 3,
253             visible => 1,
254             },
255             marker => {
256             back_color => '0022ff',
257             fore_color => '000055',
258             visible => 1
259             },
260             text => 2
261             },
262             scroll_width => '640',
263             word_chars => '$%-@_abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ0123456789',
264             },
265             file => {
266             current => {
267             directory => '',
268             },
269             defaultsettings => {
270             new => { # defaults for new docs
271             EOL => 'OS', # (OS|auto|cr|lf|cr+lf) end of line character, OS means current OS standart -NI auto means take setting of the last touched file
272             codepage => 'ascii', # (8bit|utf8) codepage, used for charset
273             cursor_pos => 0,
274             readonly => 'no', # (0|1|2|on|off|protect) if =1 it set a write protection on readonly files
275             syntaxmode => 'perl', # (auto|none|lang_id) which syntaxstyle on new files
276             tab_size => '4', # (0..n) how much (white)spaces equals one tab?
277             tab_use => '1', # (0|1) use of tab chars
278             },
279             open => { # defaults for opened files
280             EOL => 'auto',# (auto|cr+lf|cr|lf) EOL of opened files, if not set to auto,
281             # the file automaticly will converted to set value
282             codepage => 'auto',# (ascii|utf8) codepage, used for charset
283             cursor_pos => 0,
284             readonly => 'protect', # (0|1|2|on|off|protect) if =1 it set a write protection on readonly files
285             syntaxmode => 'auto', # (auto|none|lang_id) which syntaxstyle on new files
286             tab_size => '4', # (0..n) how much (white)spaces equals one tab?
287             tab_use => 'auto', # (auto|0|1) use of tab chars
288             },
289             },
290             endings => {
291             ada => 'ada ads adb',
292             as => 'as',
293             asm => 's asm',
294             ave => 'ave',
295             baan => 'bc cln',
296             batch => 'bat cmd nt',
297             conf => 'conf',
298             context => 'tuo sty',
299             cpp => 'c cc cpp cxx h',
300             cs => 'cs',
301             css => 'css',
302             diff => 'diff patch',
303             err => 'err errorlist',
304             eiffel => 'e',
305             forth => 'forth',
306             fortran => 'f for f77 f90 f95 f2k',
307             haskell => 'hs',
308             html => 'htm html ssi shtml xhtml tag stag',
309             java => 'jav java',
310             js => 'js',
311             idl => 'idl odl',
312             latex => 'aux toc idx',
313             lisp => 'el jl lsp lisp',
314             lua => 'lua',
315             make => 'makefile Makefile mak configure',
316             matlab => 'm octave',
317             nsis => 'nsi nsh',
318             perl => 'pl ple plx plex pm pod cgi',
319             php => 'php php3 php4 phtml',
320             property => 'properties session ini inf reg url cfg cnf aut',
321             ps => 'ps',
322             pascal => 'pas dpr dpk dfm inc pp',
323             python => 'py pyw',
324             ruby => 'rb',
325             scheme => 'scm smd ss',
326             sh => 'bsh sh',
327             sql => 'sql',
328             tcl => 'tcl tk itk',
329             tex => 'tex sty',
330             text => 'txt nfo',
331             vb => 'vb bas frm cls ctl pag dsr dob',
332             vbs => 'vbs dsm',
333             xml => 'xml xsl svg xul xsd dtd xslt axl xrc rdf',
334             yaml => 'yaml yml',
335             },
336             group => {
337             config => 'conf',
338             perl => 'perl',
339             text => 'text',
340             web => 'css html php perl js',
341             },
342             open => {
343             dir_recursive => 1, # opens dirs recursive
344             each_once => 1, # opens each file only once
345             in_current_dir => 1, # opens dialog with the directory of current file
346             into_empty_doc => 0, # replacing new empty documents while opening a file
347             into_only_empty_doc => 1, # replacing new empty doc if the empty is the only one
348             notify_change => 30,# (0..n) timer executed check if file has changed in sec
349             only_text => 0, # to open only text files
350             single_doc => 0, # opens only 1 document at once, enables an single document editor
351             },
352             save => {
353             auto_save => 30, # -NI(0|n) timer executed save after n sec
354             b4_quit => 'ask', # (yes|no|ask) filesaving before closing a file
355             b4_close => 'ask', # (yes|no|ask) filesaving before closing the progr
356             change_doc => 0, # saves everytime you change document
357             empty => 0, # -NI saves (restore) automaticly also empty files
358             on_leave => 0, # -NI save on leaving focus of current document
359             overwrite => 'ask', # (yes|no|ask) before overwriting files
360             reload_config => 1, # reload config automatic after saving it
361             tilde_backup => 0, # creates UNIX backup files with filename+~
362             unchanged => 0, # saves (touches) automaticly also unchanged files
363             },
364             session => {
365             auto => {
366             file => 'current.yaml',
367             node => '',
368             save => 1,
369             },
370             backup => 'backup.yaml',
371             directory => 'session', # subdir of config where to look for session files
372             history => {
373             file => 'history.yml',
374             length => 13,
375             node => '',
376             save => 1,
377             },
378             },
379             templates => {
380             directory => 'template',
381             file => 'perl.conf',
382             },
383             },
384             search => {
385             attribute => {
386             auto_wrap => 1,
387             fast_steps => 7,
388             in => 'document',
389             incremental => 1,
390             match_case => 0,
391             match_regex => 0,
392             match_whole_word => 0,
393             match_word_begin => 0,
394             },
395             data_file => 'global/data/search.yml',
396             history => {
397             length => 12,
398             remember_only_matched => 1,
399             save => 1,
400             use => 1,
401             },
402             marker => {
403             any => 1,
404             wrap => 1,
405             },
406             },
407             texts => {
408             special => 'english/special_feature.txt',
409             credits => 'english/license/credits.txt',
410             feature => 'english/all_feature.txt',
411             keymap => 'english/keymap.txt',
412             license => 'english/license/gpl.txt',
413             navigation => 'english/navigation.txt',
414             version => 'english/this_version.txt',
415             welcome => 'english/welcome.txt',
416             }
417             }
418             }
419            
420             1;