The KDevelop PHP extension works well with code that makes no use of namespaces, but when namespaces are used, very few things work, especially across classes and using use statements. In short, just like the C++ built-in plugin, support namespaces but also accept the as keyword in the use statement to resolve the same class. <?php namespace VendorName/SomeComponent; use Doctrine\Collections\ArrayCollection; class Puzzle extends ArrayCollection { } Another file: <?php namespace VendorName/SomeComponent; use SomeLibrary\Piece as TheirPieceImpl; class Piece extends TheirPieceImpl { } If another file does this: use SomeLibrary\Piece; use VendorName\SomeComponent\Puzzle; $puzzle = new Puzzle(); $piece = new Piece('a'); $puzzle->addPiece($piece->(ctrl+space)); // expect method completion here It would be acceptable if 2 classes were named the same entirely and found in the hierarchy that the first be the one to get methods and properties from. But the main goal here is that typing Puzzle() is treated the same as typing VendorName/SomeComponent\Puzzle() due to the use statement. Reproducible: Always Steps to Reproduce: 1. Open project that uses namespaces 2. Attempt to auto-complete a method with a class that is mentioned via use statement Actual Results: Only Kate auto-completion results appear. Expected Results: KDevelop's auto-complete results should appear (method names, properties, etc).
*** This bug has been marked as a duplicate of bug 255537 ***