:::{index} Editor; Features
:::

# Editor Features

The editing  component of PyScripter is based on 
[Synedit](https://github.com/pyscripter/SynEdit). 
 Synedit is a highly customizable editor that offers a large number of features including:

- Syntax highlighting
- Full Unicode support (emojis, bi-directional text editing, etc.)
- Code folding
- Drag and drop editing
- Line numbers
- Numbered bookmarks
- Practically unlimited file size
- Automatic detection of Unix and Mac line breaks
- Track changes bar
- Brace Highlighting
- Spell checking
- [Side-by-side  file editing](splitworkspace)
- [Work with remote files](remotefiles)
- [Multi-caret and multi-selection editing](https://pyscripter.blogspot.com/2024/10/teaser-multi-caret-editing-is-coming-to.html)
- [Annotated scrollbars](https://pyscripter.blogspot.com/2024/10/teaser-annotated-scrollbars-are-coming.html)
- [Display of program flow control symbols](https://pyscripter.blogspot.com/2024/10/teaser-display-of-program-flow-control.html)
- [Color highlighting of program structure](https://pyscripter.blogspot.com/2024/10/teaser-highlight-program-structure-is.html)

PyScripter has adapted Synedit for the purpose of editing Python files and has added the 
following features:

- Context aware indentation of source code lines
- [Code Completion](codecompletion)
- Python source code utilities ((un)tabify, (un)comment, (un)indent)
- Context sensitive help on Python keywords
- Parameterized [Code Templates](codetemplates)
- Accept files dropped from Explorer
- File change notification
- Detecting UTF-8 encoded files when loading/saving 
- Converting line breaks (Windows, Unix, Mac)  


Click below to find out about:
- [Customizing Editor Options](editoroptions)
- [Editor Shortcuts](editorshortcuts)
