Sign in Join
Wiki copytemporary

source code editor: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: source code editor

OldNewLine
1+A **[[Source code|source code]] editor** is an [[Editor|editor]] program particularly addressing programmers’ demands, either exclusively (cf. [[IDE]]) or as part of a general-purpose suite.
2+
3+## features
4+
5+A source code editor is not a *text processor*, instead:
6+
7+- It uses an single `mono space` western font of one size and with uniform spacing \[e.g. *Courier* is such a font\].
8+- Lines have a unique height and spacing.
9+- There are no hidden attributes added to the stored text.
10+- Text attributes are used only for #syntax highlighting or similar predefined purposes.
11+- All text is left justified. Indentation is done with tabstops.
12+- Long lines are not automatically wrapped on hyphens (hyphenated word) or syllable boundaries.
13+- There is no document, page or paragraph formatting or layout.
14+
15+Some common and desirable features are:
16+
17+- adjustable tab expansion.
18+- right margin marker (soft).
19+- block selection and processing (single block).
20+- read-only, insert and overwrite input modes.
21+- rich choice of keyboard commands.
22+- scrollbars, mouse and mouse-wheel support.
23+- undo/redo support.
24+- clipboard support.
25+- line number and special marker display (gutter).
26+
27+Additional useful extensions:
28+
29+- syntax highlighting.
30+- bookmarks.
31+- hyperlink and block navigation.
32+- code completion.
33+- visualization of white characters.
34+- display and editing of embedded Unicode literals.
35+- macro capabilities.
36+- block folding.
37+- block movement.
38+- EOL adjustment.
39+- tab replacement.
40+- smart indentation.
41+- multiple text #windows, easy content switch, multiple display of same text source.
42+- persistent user settings.
43+- context menu.
44+
45+Also desireable, but not for source code editing:
46+
47+- word wrap.
48+- Unicode support.
49+- hexdump of binary sources.
50+
51+## Unsorted
52+
53+(to be categorized)
54+
55+### Font
56+
57+For traditional and performance reasons, a mono space font shall be used. This allows to manage the display in form of a grid, with easy mapping between screen coordinates and character indices. Most compilers only accept ASCII code, other characters can be used only in comments.
58+
59+Of course support for other character sets (input and display) and input orientation (right-to-left) can be added - by persons with according knowledge and skills. I have no idea how to e.g. mix RTL string literals with LTR program code. OTOH I'm not comfortable with ASCII text myself, as are many more non-English speakers. I'll support any (every?) attempt to remove language barriers from [[SynEdit]], but cannot contribute many ideas or techniques to this subject.
60+
61+## See also
62+
63+- [[vim]]
64+
65+---
66+*From the Free Pascal wiki, page "source code editor", as it stood on 2021-02-01 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history