<commit_before># About Psalm

[Psalm](https://getpsalm.org) is a static analysis tool that attempts to dig into your program and find as many type-related bugs as possible.

- [Introduction](#introduction)
- [Installation](installation.md)
- [Configuration](configuration.md)
- Using Psalm
  - [Running Psalm via command line](running_psalm.md)
  - [Running Psalm in your IDE](language_server.md)
- [Using Psalter](fixing_code.md)
- [Supported Annotations](supported_annotations.md)
- [Dealing with code issues](dealing_with_code_issues.md)
  - [Issue types](issues.md)
- [Typing in Psalm](typing_in_psalm.md)
- [Plugins](plugins.md)
- [Checking non-PHP files](checking_non_php_files.md)
- [How Psalm works](how_psalm_works.md)
  - [Things that make developing Psalm complicated](what_makes_psalm_complicated.md)

## Introduction

Psalm tries to understand your codebase as best as possible so it can find errors.

It has a few features that go further than other similar tools:
<commit_msg>shifting link to sub-section as per discussion in #1323<commit_after># About Psalm

[Psalm](https://getpsalm.org) is a static analysis tool that attempts to dig into your program and find as many type-related bugs as possible.

- [Introduction](#introduction)
- [Installation](installation.md)
- [Configuration](configuration.md)
- Using Psalm
  - [Running Psalm via command line](running_psalm.md)
  - [Running Psalm in your IDE](language_server.md)
- [Using Psalter](fixing_code.md)
- [Dealing with code issues](dealing_with_code_issues.md)
  - [Issue types](issues.md)
- [Typing in Psalm](typing_in_psalm.md)
  - [Supported Annotations](supported_annotations.md)
- [Plugins](plugins.md)
- [Checking non-PHP files](checking_non_php_files.md)
- [How Psalm works](how_psalm_works.md)
  - [Things that make developing Psalm complicated](what_makes_psalm_complicated.md)

## Introduction

Psalm tries to understand your codebase as best as possible so it can find errors.

It has a few features that go further than other similar tools:

{'fraction_non_alphanumeric': 0.10365251727541955, 'fraction_numerical': 0.0019743336623889436, 'mean_word_length': 5.217791411042945, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4687336', 'n_tokens_mistral': 671, 'n_tokens_neox': 624, 'n_words': 194}