All Projects → klesun → Deep Assoc Completion

klesun / Deep Assoc Completion

Licence: other
A phpstorm plugin for associative array key typing and completion

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Deep Assoc Completion

Typing Assistant
Typing Assistant provides the ability to autocomplete words and suggests predictions for the next word. This makes typing faster, more intelligent and reduces effort.
Stars: ✭ 32 (-84.16%)
Mutual labels:  autocompletion
Dargs
Enhance any command with dynamic arguments
Stars: ✭ 107 (-47.03%)
Mutual labels:  autocompletion
Athenacli
AthenaCLI is a CLI tool for AWS Athena service that can do auto-completion and syntax highlighting.
Stars: ✭ 151 (-25.25%)
Mutual labels:  autocompletion
Autocomplete Json
Atom autocomplete for JSON files
Stars: ✭ 60 (-70.3%)
Mutual labels:  autocompletion
Tenkawa Php Language Server
Language server for PHP, with powerful static analysis and type inference.
Stars: ✭ 78 (-61.39%)
Mutual labels:  autocompletion
Micropy Cli
Micropython Project Management Tool with VSCode support, Linting, Intellisense, Dependency Management, and more!
Stars: ✭ 112 (-44.55%)
Mutual labels:  autocompletion
Pawn Sublime Language
Pawn language settings for Sublime Text 3. Copied from C++ but with Pawn language and SA:MP specific modifications.
Stars: ✭ 26 (-87.13%)
Mutual labels:  autocompletion
Vim You Autocorrect
Why should smartphones get all the fun?
Stars: ✭ 173 (-14.36%)
Mutual labels:  autocompletion
React Categorized Tag Input
React.js component for making tag autocompletion inputs with categorized results.
Stars: ✭ 78 (-61.39%)
Mutual labels:  autocompletion
Laravel Ide Helper
Laravel IDE Helper
Stars: ✭ 11,893 (+5787.62%)
Mutual labels:  autocompletion
Omelette
Omelette is a simple, template based autocompletion tool for Node and Deno projects with super easy API. (For Bash, Zsh and Fish)
Stars: ✭ 1,184 (+486.14%)
Mutual labels:  autocompletion
Intero.nvim
Haskell+Neovim lightning fast autocompletion and other IDE functionality
Stars: ✭ 76 (-62.38%)
Mutual labels:  autocompletion
Ide Stubs
Phalcon IDE Stubs
Stars: ✭ 137 (-32.18%)
Mutual labels:  autocompletion
R.swift
Strong typed, autocompleted resources like images, fonts and segues in Swift projects
Stars: ✭ 8,419 (+4067.82%)
Mutual labels:  autocompletion
Glyphfriend
Glyphfriend is a Visual Studio Extension to add previews for various icon/glyph fonts to Visual Studio.
Stars: ✭ 157 (-22.28%)
Mutual labels:  autocompletion
Docker Machine Zsh Completion
A more functional and up-to-date zsh completion for docker-machine
Stars: ✭ 14 (-93.07%)
Mutual labels:  autocompletion
Rdf.sh
A multi-tool shell script for doing Semantic Web jobs on the command line.
Stars: ✭ 109 (-46.04%)
Mutual labels:  autocompletion
Orbacle
Program allowing for smart jump-to-definitions, autocompletion, constant renaming and more.
Stars: ✭ 191 (-5.45%)
Mutual labels:  autocompletion
Modernsearchbar
The famous iOS search bar with auto completion feature implemented.
Stars: ✭ 167 (-17.33%)
Mutual labels:  autocompletion
Cakephp Ide Helper
IDE Helper plugin for CakePHP
Stars: ✭ 138 (-31.68%)
Mutual labels:  autocompletion

Autocomplete keys of associative arrays defined in other functions.

Jetbrains Repository: 9927-deep-assoc-completion

Features description

(a bit more relaxed usage guide can be found here)

  • Completion from expression

    When you are going to type an associative key of a variable, like in $user[''], put caret between quotes and press ctrl + space. The plugin will analyze your code, determine what keys does $user have and suggest completion.

  • Go To Definition

    Go To Definition

    To go to the key definition, hover on it and press ctrl + click or put carret on it and press ctrl + b.

  • Completion from phpdoc

    See formats description

    Completion from phpdoc

    You can specify function argument type using @param SomeType $varName = Some::phpExpression(), like @param $anime = ['genre' => 'shounen', 'studio' => 'Shaft']. = is mandatory and expression must be a valid php expression. Class methods can be specified either with complete namespace like \Very\Long\Namespace\ClassName::funcName(), or with just ClassName::funcName().

    You can specify @return array keys as well:

    /**
     * @return array [
     *     'success' => true,
     *     'formObject' => new Form,
     *     'errors' => [],
     * ]
     */
    public static function processForm($arr);
    

    Completion from @return phpdoc

  • Object type info in an associative array

    Object type info in an associative array

    Phpstorm does not give you method name completion when object is located in an associative array? Don't be sad, this plugin is exactly what you need!

  • To N-th Test

    To N-th Test

    Did you ever want an ability to find out which exactly test case does phpunit mean by the with data set "17" without manually counting them? You can find this feature in Tools -> deep-assoc-completion -> To N-th Test. It moves your caret to the test case with the order you specify in the popup. If there are multiple @dataProvider functions in the file, the function caret is currently in will be used. This action will work correctly only on more or less straightforward @dataProvider-s.

  • String value completion

    String Value Completion

    String Value Completion

  • Transpile to JS code (not related to completion anyhow, but whatever)

    Transpile to JS code

Completion sources

  • Argument type resolution based on what was passed to the function

    Keep Track of What is Passed to the Function

    Infer type based on function usage when inside function

    Extremely useful for small private helper functions - you don't need to document args in each of them to get completion.

  • Keys from PDOStatement::fetch() if your Database is connected to IDEA

    PDO completion

  • All built-in array functions I could find are supported

    built-ins

    static key built-ins






Steps to compile plugin into a .jar follow:

  • Start creating a new project in Intelliji Idea.
  • Select Intelliji Platform Plugin.
  • Select a phpstorm or IDEA Ultimate installation directory as Project SDK (java version is 8).
  • Select deep-assoc-completion project folder as Project location.
  • In Project Structure -> Libraries add php.jar and php-openapi.jar from YourPhpStormDirectory/plugins/php/lib/ (in case of IDEA Ultimate, the php plugin should be installed, and the location is HomeOrMyDocumentsDir/.IntellijIdea20XX.X/config/plugins/php/lib).
  • In Project Structure -> Modules -> Dependencies set Scope of php-openapi to Provided.

To build a jar use Build -> Prepare Plugin ... For Deployment. To debug use Run -> Debug. Since phpstorm project takes about a minute to start, you must find Run -> Reload Changed Classes very useful for micro changes.

To use compiled .jar in your phpstorm go to Settings -> Plugins -> Install plugin from disk and select the .jar we compiled earlier.


Shutout my thanks to the JetBrains for continuously supplying me an open source IDE license for this plugin development.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].