Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/VKCOM/kphpstorm

A PhpStorm plugin that makes IDE understand KPHP specifics
https://github.com/VKCOM/kphpstorm

intellij-plugin kphp phpstorm-plugin

Last synced: 3 months ago
JSON representation

A PhpStorm plugin that makes IDE understand KPHP specifics

Awesome Lists containing this project

README

        

# KPHPStorm plugin for PhpStorm

[![Build](https://github.com/VKCOM/kphpstorm/actions/workflows/build.yml/badge.svg)](https://github.com/VKCOM/kphpstorm/actions/workflows/build.yml)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)
[![Total Downloads](https://img.shields.io/jetbrains/plugin/d/14814)](https://plugins.jetbrains.com/plugin/14814-kphpstorm)
[![Latest Version](https://img.shields.io/jetbrains/plugin/v/14814)](https://plugins.jetbrains.com/plugin/14814-kphpstorm)

PhpStorm plugin that makes IDE understand KPHP specifics.
[JetBrains repository](https://plugins.jetbrains.com/plugin/14814-kphpstorm/)

KPHP is a PHP compiler.
Its goal is to execute PHP code much faster.
It supports a strict subset of PHP and brings new types, functions, annotations and web server runtime.

## Brief info

* extended types in phpdoc: arbirtary nesting, ?nullable, tuples, shapes and other KPHP types

phpdoc types

* extended type inferring with per-key access completion and stdlib enhancements

extended tinf

* @kphp- doc tags autocomplete and validation

@kphp doc tag

* strict type checking in function calls, assignments, return statements, array access, etc

strict typing

* ... and much more!

## Detailed info

#### **[Landing page (in Russian)](https://vkcom.github.io/kphpstorm/)**

## Useful for plugin developers

Provided code can help IDEA/PhpStorm plugin developers in various aspects: how to provide extended type inferring, parse and colorize custom doc tags, traverse PSI structure, handle stubs metadata and lots of corner cases.

An interesting fact is that plugin disables lots of features in plain PHP projects (not KPHP-based).

Feel free to examine this code, it contains lots of necessary comments.

## Questions and contribution

Please contact [vk.com/kphp](https://vk.com/kphp) or VK Team.