jorissteyn / edep Goto Github PK
View Code? Open in Web Editor NEWAn Emacs Development Environment for PHP
An Emacs Development Environment for PHP
A remark from @periklis in emacs-php/php-mode#235:
I took care of aliassing cl-defmethod to the old defmethod on 24.4, but apparently did something wrong there.
Having it on travis would have prevented #1. Going to take the php-mode setup as basis but also thinking about small improvements:
I have been using EDEP for the past week with the Semantic version built in Emacs 24.5 and more recently with CEDET 2.0 because of its greater parser debugging capabilities.
Your grammar has only had a few hiccups in a couple of files that used var
instead of public
, besides that it has been churning code all day, every day, like nothing.
Anyway, the first thing that caught my eye about EDEP is the lack of include tags :)
As I was playing about with SemanticDB, I've immediately noticed that I could get EDEP to emit includes with the simple change of USEDECL
to INCLUDE-TAG
use_declaration
: namespace_name (INCLUDE-TAG $1 nil)
| namespace_name T_AS T_STRING (INCLUDE-TAG $1 nil :alias $3)
| T_NS_SEPARATOR namespace_name (INCLUDE-TAG $2 nil)
| T_NS_SEPARATOR namespace_name T_AS T_STRING (INCLUDE-TAG $2 nil :alias $4)
;
You clearly know what you are doing, so I figure you know already about the macro INCLUDE-TAG
.
I would like to know what's your rationale for not using the built-in macro for it cannot be as simple a fix like I suggest above.
As far as I understand PHPTags is there to reproduce some of the SemanticDB functionality without the need to give SemanticDB knowledge about the project files through EDE. Perhaps this is why you opted for a custom macro?
Real good work @jorissteyn. I'm really enjoying using EDEP thank you very much for it.
P.S.: this is very much related to php-mode issue #235, I will be replying to that thread next weekend.
Hi @jorissteyn,
First, thanks for this cool project! As an Emacs user who does mainly PHP work, it's great to see this. I had a few questions, the main one is "do you have a roadmap for the project", but here are some specific questions:
semantic-ia-fast-jump
functionality could be improved, or are there inherent limitations with the tagging method in phptags
? Specifically, I'm looking at this part of the README Note that this implementation is very basic and only works for type names (classes, interfaces, traits) and global functions. Jumping to the definition of a method name is also possible with the limitation that the variable should be a typed function parameter and the method should be directly defined on the type, not inherited.
phptags
?semantic-ia-show-doc
can use these? Current behavior seems pretty erratic - most of the time nothing is shown, sometimes the very last line in a docblock is shown.More broadly, could you outline if EDEP will (eventually) do more than navigation for projects?
Thanks for your work on this! My lisp skills are pretty minimal but I'm happy to test branches, provide feedback, write docs, etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.