# Overview

This section of the documentation discusses how the analysis server works and
how to enhance the various features provided by the server.

## Design

The design of the analysis server beings with [a description of what the server
does on startup](startup.md)

## Features

To learn how the server implements support for a specific feature, read one of
the following feature-specific documents:

- Call hierarchy
- Closing labels
- [Code completion](code_completion.md)
- Code folding
- documentSymbol
- Flutter outline
- Hovers
- Implemented markers
- [Navigation](navigation.md)
- Occurrences
- Organize imports
- Outline
- Overrides markers
- [Quick assists](quick_assist.md)
- [Quick fixes](quick_fix.md)
- Refactorings - legacy
- Refactorings - self describing
- Search - Find references
- Search - Member declarations
- Search - Member references
- Search - Top-level declarations
- selectionRange
- [Semantic highlights](semantic_highlighting.md)
- signatureHelp
- Sort members
- Type hierarchy
