-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
1577 lines (882 loc) · 26.8 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
it-edit
*******
Installation
************
$ ./configure
$ make
$ sudo make install
Motivation for writing it-edit
******************************
They are 2 sort of programmers in their habits of writing programs:
* They which use an IDE with full integrated functionalities.
* They which use an text editor to write their programs and a
terminal to compile, debug or launch them and some other tools
separately.
Because i'am an programmer from the second category and because i
remark that i often use an additional other tools.
I decide to write my own text editor program which provide me all
the functionalities that i need to get a development environment
fully adapt to my requirement.
Which consist of a terminal integrated text-editor with which you
can access all you require directly from the editor: documentation,
GUI applications, ...
it-edit presentation
********************
**it-edit** provide a text editor with "syntax highlight", "line
numbering" and with the basics text editing functionalities:
* Cut, Copy and Paste.
* Duplicate a line or the selected text.
* Undo/Redo functionalities.
* Search and replace functionalities.
* Jump to the given line number.
* Enable | Disable the use of tabs.
And an files managing interface for:
* Open a new empty file.
* Open the file you want.
* Open an recent file.
* Save the editor content.
* Save the editor content as the filename you want.
* Save all open files.
* Reload file.
* File informations.
**it-edit** provide **terminals in the same window as the editor**,
as a sidebar, which can easily **shown**, **hidden** and
**resized**.
You can **add** and **remove** as many terminals as you want to the
sidebar...
**it-edit** provide a **big terminal** occupying the full
interface, **dividable** into **4 resizable terminals**, to which
you can **easy toggle** from the main window.
For executing commands like compilation, debugging, and so soon
directly from the editor.
I intend to implement an "manpages reading interface", in an
**toplevel terminal window** (so it can be **resize**,
**minimize**, **maximize** and **closed**),
but i remark by implementing it that i restrict the command to
execute the "man [section] page" command.
So i decide to provide the same functionality but without
restricting it to the manpage displaying, to expand it to execute
any command you want in an toplevel terminal.
It result in a functionality to execute a command in a toplevel
terminal, which can be resize, minimize, maximize and close.
After the execution of the command the toplevel terminal is yours
and can continue to enter commands...
I intend to implement launching of "registered offline HTML
documentation" in a toplevel window,
but i remark by implementing it that i restrict it to offline
**HTML** pages.
So i decide to provide the same functionality with registering any
file you like.
The registered files are launched with the default program for this
filetype.
After registering the files, you can easy launch it and access them
all directly from **it-edit**.
I want to launch necessary **GUI tools** directly from the editor.
So **it-edit** permit to register the application you want to get
direct access to it from your editor.
Like: A **GUI** "diff tool", A **GUI** "debugger", a smart "python
interpreter", a "calculator", a "color picker", a "dictionary", and
so soon...
Files
*****
You can start **it-edit** from the command line with a space
delimited files list, as argument, which will be opened in the
editor at start.
Or use the **it-edit** icon with your files-manager you can select
files to open with **it-edit**.
To know for files managing:
* **Open a new empty file** use the menu item, the button or the
shortcut: **Ctrl + n**.
* **Open a file** by selecting it with a file selector, use the
menu item, the button or the shortcut: **Ctrl + o**.
* You can **open a recent file** by selecting it in the list from
the menu item.
* **Save** the current editor content use the menu item, the
button or the shortcut: **Ctrl + s**.
* **Save all** open files use the menu item, the button or the
shortcut: **Ctrl + Maj + S**.
* **Reload file** will reload the last saved version from the
file in the editor, use the menu item or the shortcut **Ctrl +
R**.
* **File informations** will display informations, which you can
edit, about the current file, use the menu item or the shortcut
**Ctrl + I**.
You can easily navigate into your open files by using the pop-up
menu or by clicking on the file tab.
You can reorder your open files as wanted by drag and drop the
files tabs.
Edition
*******
To know about edition:
* **Undo** use the contextual menu or the shortcut: **Ctrl + Z**.
* **Redo** use the contextual menu or the shortcut: **Ctrl + Maj
+ Z**.
note:
The menu items from *Undo* and *Redo* does not work well but
the shortcuts and and the contextual menu yes.
* **Cut** use the contextual menu, the menu item, the button or
the shortcut: **Ctrl + X**.
* **Copy** use the contextual menu, the menu item, the button or
the shortcut: **Ctrl + C**.
* **Paste** use the contextual menu, the menu item, the button or
the shortcut: **Ctrl + V**.
* **Duplicate** the selection or the line at cursor position, use
the menu item, the button or the shortcut: **Ctrl + D**.
* **Use space instead of tabs**: for switching between tab use or
not, use the menu item or the shortcut: **Ctrl + P**.
Editor
******
**Go to line number** use the menu item, the button or the
shortcut: **Ctrl + g**.
Enter an valid line number and press **Enter** or the **Apply**
button to move the editor to the wanted line, which will be
highlight.
**Find and replace** functionality.
You can *show* | *hide* the find and replace bar by using the
toggle button.
The search and replace bar has following functionalities:
* **Search** button: this will highlight all the matching
occurrences from the search term and moving the editor to the
first occurrence position.
* **Next** button: highlight the next matching occurrence from
the search term.
Pressing **Enter** when the search entry field has the
focus has the same effect.
The search will start at selection or at the cursor
position.
If you select some text with the mouse and using the
shortcut **Ctrl + f**.
The search field will toggle on if not visible and will
contains the selected text as search term.
note:
You can use the shortcut **Ctrl + +** instead of the
button (Use the keypad).
* **Previous** button: highlight the previous matching
occurrence from the search term.
The search will start at selection or at the cursor
position.
If you select some text with the mouse and use the shortcut
**Ctrl + f**.
The search field will toggle on if not visible and will
contains the selected text as search term.
note:
You can use the shortcut **Ctrl + -** instead of the
button (Use the keypad).
* **Replace** button: replace the current matching occurrence,
which is highlight, with the content of the replace field.
If this don't work simply hit the Next or Previous button,
this occur if you never make a search before: a search must
be done before replacing.
note:
You can use the shortcut **Ctrl + Enter** instead of the
button (Use the keypad).
* **Replace all** button: replace all the matching occurrence
in the current file.
note:
You can use the shortcut **Ctrl + Maj + Enter** instead of
the button (Use the keypad).
* **Mode**: You can select how your search term(s) will be
interpreted.
* **Raw text**: all search terms matching.
* **Word boundary**: The search term must be a complete
word, not a part but an variable with separators like
underscores or points will work too.
* **Regular expression**: *Perl* compatible regular
expression (REGEX).
* **Close** button: hide the search and replace bar and clear
the highlight.
note:
if you select some text with the mouse and use the **Ctrl + f**
shortcut.
* The search and replace bar will be show.
* The search field will be filled with your selection.
* The search will begin at your selection position if you hit
the **Next** or **Previous** button.
Actions
*******
**Command execution**: use the menu item, the **Cmd** button or the
shortcut: **Ctrl + e**.
This will display a little toplevel in which you can enter a
command.
Then press the **Enter** key or the **Apply** button to execute
the command in a terminal include in a toplevel window (so you
can resize, minimize, maximize and close the window).
After the execution from the command the toplevel terminal is
yours so can continue to enter commands and use it.
**Sidebar Terminals adding**: You can add some terminals, 2 per
item, to the sidebar, reorder them, and remove it.
Use the menu item or the shortcut **Ctrl + Maj + T**.
**Big terminal(s) switch**: You can switch between a very big
terminal and a very big terminal divided into 4 terminals.
Use the menu item or the shortcut **Ctrl + Maj + B**.
**File Handler**: use the menu item or the shortcut: **Ctrl + H**.
For using this features you must register files from the **Files
handler manager** tab interface reachable through the
settings->Configure program menu item.
For registering a file you must give it a title which will
appears as the button text in the **File Handler** window and
selecting the corresponding file.
Then when you press the button in the **File Handler** window,
the file will be launched with the default application for this
filetype.
This features was thinking for fast access to offline HTML
documentation but it's being expanded to any filetype, so you
can consult pdf documentation too, but not only, this features
can be use for any use you want.
The registered files can be removed from the **File handler**
list through the same interface with which you add it.
**Application launcher**: use the menu item or the shortcut: **Ctrl
+ A**.
This will display an application chooser. By selecting an
application you will launch it.
Applications
************
You can set different GUI tools launcher from **it-edit**:
Under the section **programming** you can set:
* A **GUI** diff tool.
* A **GUI** debugger.
* A **GUI** smart python interpreter.
* A user interface designer.
* devhelp.
Under the **utilities** section you can set:
* A **GUI** calculator.
* A **GUI** color picker.
* A **GUI** dictionary.
* A file manager.
* A **GUI** note taker.
* A browser.
Else you can register the application you want under the **others**
section.
This is very practice to launch an application directly from **it-
edit** instead of:
1. Minimize **it-edit**
2. Go to the menu.
3. Find the application you want to launch.
4. Launch your application.
View
****
**Big term** *Show* | *hide*: use the menu item, the toggle button
or the shortcut: **Ctrl + B**.
**Terminals** *show* | *hide*: use the menu item, the toggle button
or the shortcut: **Ctrl + T**.
**Button bar** *show* | *hide*: use the menu item.
**Fullscreen** toggle: use the menu item.
Settings
********
**Syntax highlight**: use the menu item.
To set the syntax highlight on, on the current edited text from
the supported language.
**Editor schemes**: use the menu item.
To set the appearance from the text editor.
Currently they are 13 different schemes available in **it-
edit**:
* build
* Classic.
* Cobalt.
* emacs.
* Kate (default).
* matrix
* Oblivion.
* slate.
* Solarized-dark.
* Solarized-light.
* Tango.
* turbo.
* vsdark.
Each time you change the scheme your choice is registered so
that you don't have to change it every time you start **it-
edit**.
**Configure program**: use the menu item.
To access to the program configuration window which is divide
into 3 part:
**Editor settings**:
* Font (Monospace 10 per default).
* Display lines numbers (Enabled per default).
* Display TABS characters (Enabled per default).
* Use auto-indent (Enabled per default).
* Indent width (2 per default).
* Use spaces instead of TABS (Enabled per default).
* TABS width (2 per default).
* Create a backup file by saving (Enabled per default).
* Remove trailing space at saving (Enabled per default).
**Terminal settings**:
* Appearance:
* Font (Monospace 10 per default).
* Font scale (1.0 per default).
* Cursor type (BLOCK per default).
* Cursor color (white per default).
* Cursor blink mode (BLINK_SYSTEM per default).
* Background color (Black per default).
* Foreground color (White per default).
* Allow bold (True per default).
* Bold color (White per default).
* Pointer autohide (Disabled per default).
* Settings:
* User shell (Default to your default shell).
* Start directory when you launch a terminal.
* Audible bell (Enabled per default).
* Scroll back lines.
* Unlimited (Default).
* Settable to the value you want.
* Scrolling.
* Scroll on output (Disabled per default).
Controls whether or not the terminal will forcibly
scroll to the bottom of the terminal when the new data
is received.
* Scroll on keystroke (Enabled per default).
Controls whether or not the terminal will forcibly
scroll to the bottom of the terminal when the user
presses a key.
* Erase binding.
* Backspace key binding (Default to automatic).
* Delete key binding (Default to automatic).
**File handler manager**:
Here you can add and remove files for the **File handler**
feature.
**Applications**:
Here you can define shortcuts for the applications you want.
**Settings**
* Define the ratio main-interface and sidebar in form of a
floating-point value between 0.0-1.0,
representing the surface the sidebar will cover and so the width
of the sidebar terminals.
* Show | hide the sidebar terminals at start.
* Show | hide the big terminal at start.
* Choosing to divide the big terminal in 4 at start.
* Toggle to fullscreen at start.
* Launch a command in the terminals at start.
* Set it-edit as your default editor or reset the settings.
Shortcuts memo
**************
Application shortcuts:
======================
+--------------------+----------------------+------------------+
| Shortcut | functionality | Mnemonic |
+====================+======================+==================+
| Ctrl + n | New file | n = new |
+--------------------+----------------------+------------------+
| Ctrl + o | Open file | o = open |
+--------------------+----------------------+------------------+
| Ctrl + s | Save file | s = save |
+--------------------+----------------------+------------------+
| Ctrl + Maj + S | Save all files | S = Save |
+--------------------+----------------------+------------------+
| Ctrl + r | Reload file | r = reload |
+--------------------+----------------------+------------------+
| Ctrl + i | File informations | i = Informations |
+--------------------+----------------------+------------------+
| Ctrl + z | Undo | None |
+--------------------+----------------------+------------------+
| Ctrl + Maj + Z | Redo | None |
+--------------------+----------------------+------------------+
| Ctrl + f | Search | f = find |
+--------------------+----------------------+------------------+
| Ctrl + Enter | Replace | none |
+--------------------+----------------------+------------------+
| Ctrl + Maj + Enter | Replace all | none |
+--------------------+----------------------+------------------+
| Ctrl + + | Next | none |
+--------------------+----------------------+------------------+
| Ctrl + - | Previous | none |
+--------------------+----------------------+------------------+
| Ctrl + g | Go to line number | g = go to |
+--------------------+----------------------+------------------+
| Ctrl + x | Cut | None |
+--------------------+----------------------+------------------+
| Ctrl + c | Copy | c = copy |
+--------------------+----------------------+------------------+
| Ctrl + v | Paste | None |
+--------------------+----------------------+------------------+
| Ctrl + d | Duplicate text | d = duplicate |
+--------------------+----------------------+------------------+
| Ctrl + p | Use tabs | none |
+--------------------+----------------------+------------------+
| Ctrl + e | Execute command | e = execute |
+--------------------+----------------------+------------------+
| Ctrl + b | Show|Hide big term | b = big term |
+--------------------+----------------------+------------------+
| Ctrl + Maj + B | big term switch | B = Big term |
+--------------------+----------------------+------------------+
| Ctrl + t | Show | Hide terminal | t = terminal |
+--------------------+----------------------+------------------+
| Ctrl + Maj + T | Add new terminals | T = Terminals |
+--------------------+----------------------+------------------+
| Maj + Copy | Copy from terminal | none |
+--------------------+----------------------+------------------+
| Maj + Insert | Paste to terminal | none |
+--------------------+----------------------+------------------+
| Ctrl + h | File handler | h = handler |
+--------------------+----------------------+------------------+
| Ctrl + a | Application launcher | a = application |
+--------------------+----------------------+------------------+
| Ctrl + q | Quit application | q = quit |
+--------------------+----------------------+------------------+
Terminals shortcuts:
====================
+-----------------------+----------------------+------------------+
| Shortcut | functionality | Mnemonic |
+=======================+======================+==================+
| Shift + Copy (KP 1) | Copy from terminal | none |
+-----------------------+----------------------+------------------+
| Shift + Insert (KP 0) | Paste to terminal | none |
+-----------------------+----------------------+------------------+
| Shift + Ctrl + T | Open new tab | t = tab |
+-----------------------+----------------------+------------------+
| Shift + Ctrl + - | Decrease font-scale | - = decrease |
+-----------------------+----------------------+- ----------------+
| Shift + Ctrl + + | Increase font-scale | + = increase |
+-----------------------+----------------------+------------------+
Supported languages
*******************
ActionScript
text/x-actionscript
* *.as
Ada
text/x-ada, text/x-adasrc
* *.adb
* *.ads
ANS-Forth94
text/x-forth
* *.4th
* *.forth
ASP
text/x-asp, application/x-asp, application/x-asap
* *.asp
Automake
* Makefile.am
* GNUmakefile.am
awk
application/x-awk
* *.awk
BennuGD
* *.prg
BibTeX
text/x-bibtex
* *.bib
Bluespec SystemVerilog
* *.bsv
Boo
text/x-boo
* *.boo
C
text/x-c, text/x-csrc, image/x-xpixmap
* *.c
C#
text/x-csharpsrc, text/x-csharp
* *.cs
C++
text/x-c++, text/x-cpp, text/x-c++src
* *.cpp
* *.cxx
* *.cc
* *.C
* *.c++
C/C++/ObjC Header
text/x-chdr
* *.h
CG Shader Language
* *.cg
ChangeLog
text/x-changelog
* ChangeLog*
C++ Header
text/x-c++hdr
* *.hh
* *.hp
* *.hpp
* *.h++
CMake
* CMakeLists.txt
* *.cmake
* *.cmake.in
* *.ctest
* *.ctest.in
COBOL
* *.cbl
* *.cob
* *.cbd
* *.cdb
* *.cdc
CSS
text/css
* *.css
* *.CSSL
CSV
text/csv
* *.csv
CUDA
* *.cu
* *.cuh
D
text/x-dsrc
* *.d
.desktop
application/x-gnome-app-info, application/x-desktop
* *.desktop
* *.kdelnk
Diff
text/x-diff, text/x-patch, text/x-reject
* *.diff
* *.patch
* *.rej
DocBook
application/docbook+xml
* *.docbook
DOS Batch
* *.bat
* *.cmd
* *.sys
DPatch
text/x-dpatch
* *.dpatch
DTD
text/x-dtd
* *.dtd
Eiffel
text/x-eiffel
* *.e
* *.eif
Erlang
text/x-erlang
* *.erl
* *.hrl
F#
text/x-fsharp
* *.fs
FCL
* *.fcl
Forth
text/x-forth
* *.frt
* *.fs
Fortran 95
text/x-fortran
* *.f
* *.f90
* *.f95
* *.for
* *.F
* *.F90
GAP
text/x-gap
* *.g
* *.gd
* *.gi
* *.gap
GDB Log
* *.gdb
Genie
text/x-genie
* *.gs
gettext translation:
text/x-po, text/x-pot, text/x-pox, text/x-gettext-translation, text/x-gettext-translation-template
* *.po
* *.pot
Go
* *.go
Graphviz Dot
text/vnd.graphviz
* *.dot
* *.gv
gtk-doc
GtkRC
text/x-gtkrc
* gtkrc
* .gtkrc
* gtkrc-*
* .gtkrc-*
Haddock
Haskell
text/x-haskell
* *.hs
HTML
text/html