{"action":"created","issue":{"url":"https://api.github.com/repos/Peekmo/atom-autocomplete-php/issues/158","labels_url":"https://api.github.com/repos/Peekmo/atom-autocomplete-php/issues/158/labels{/name}","comments_url":"https://api.github.com/repos/Peekmo/atom-autocomplete-php/issues/158/comments","events_url":"https://api.github.com/repos/Peekmo/atom-autocomplete-php/issues/158/events","html_url":"https://github.com/Peekmo/atom-autocomplete-php/issues/158","id":110254220,"number":158,"title":"Idea - Expose some kind of service?","user":{"login":"Gert-dev","id":6823929,"avatar_url":"https://avatars.githubusercontent.com/u/6823929?v=3","gravatar_id":"","url":"https://api.github.com/users/Gert-dev","html_url":"https://github.com/Gert-dev","followers_url":"https://api.github.com/users/Gert-dev/followers","following_url":"https://api.github.com/users/Gert-dev/following{/other_user}","gists_url":"https://api.github.com/users/Gert-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/Gert-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gert-dev/subscriptions","organizations_url":"https://api.github.com/users/Gert-dev/orgs","repos_url":"https://api.github.com/users/Gert-dev/repos","events_url":"https://api.github.com/users/Gert-dev/events{/privacy}","received_events_url":"https://api.github.com/users/Gert-dev/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Peekmo/atom-autocomplete-php/labels/question","name":"question","color":"ffffff"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-10-07T15:38:02Z","updated_at":"2015-10-24T08:16:54Z","closed_at":"2015-10-23T20:57:04Z","body":"Hello\r\n\r\nTo take the package one step further, maybe it would be a good idea to expose a service that allows other packages to access information we're already reading (such as `proxy.methods`, a `getCurrentMethod` method, ...). The base we're developing here has so much potential beyond our current scope:\r\n  * We could lint class names that we don't recognize (we're already scanning for class names in comments anyway).\r\n  * We could lint members that aren't recognized or are incorrectly accessed (e.g. private methods from an outside scope).\r\n  * We could lint docblocks if the type hint isn't the same as the docblock (or parameters are missing).\r\n  * We could automatically generate getters and setters for known properties of classes.\r\n  * We could automatically create missing properties the caret is on when pressing a shortcut such as `alt-enter`.\r\n  * We could automatically create missing interface methods or abstract methods that need to be implemented the caret is on.\r\n  * ...\r\n\r\nI would like to do all of these things myself but just as you (and probably everyone) I don't have an infinite supply of time and I'd rather spend it focusing on bugfixes and improvements on the current code right now. Maybe exposing a service that allows access to our information will encourage other developers to start developing these features and keep the scope of this package contained? Ideally Atom could even be turned into a full PHP IDE by installing this package along with other packages that do the things listed above!\r\n\r\nThanks in advance"},"comment":{"url":"https://api.github.com/repos/Peekmo/atom-autocomplete-php/issues/comments/150774971","html_url":"https://github.com/Peekmo/atom-autocomplete-php/issues/158#issuecomment-150774971","issue_url":"https://api.github.com/repos/Peekmo/atom-autocomplete-php/issues/158","id":150774971,"user":{"login":"Gert-dev","id":6823929,"avatar_url":"https://avatars.githubusercontent.com/u/6823929?v=3","gravatar_id":"","url":"https://api.github.com/users/Gert-dev","html_url":"https://github.com/Gert-dev","followers_url":"https://api.github.com/users/Gert-dev/followers","following_url":"https://api.github.com/users/Gert-dev/following{/other_user}","gists_url":"https://api.github.com/users/Gert-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/Gert-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gert-dev/subscriptions","organizations_url":"https://api.github.com/users/Gert-dev/orgs","repos_url":"https://api.github.com/users/Gert-dev/repos","events_url":"https://api.github.com/users/Gert-dev/events{/privacy}","received_events_url":"https://api.github.com/users/Gert-dev/received_events","type":"User","site_admin":false},"created_at":"2015-10-24T08:16:54Z","updated_at":"2015-10-24T08:16:54Z","body":"Hello\r\n\r\nYou are correct, but was never my intention to create a competing fork. What you say here is certainly valid and I respect your opinion, so I didn't want to disturb you further with this. However, I feel I must try this out to see if it will benefit the community (in the sense that it might stimulate the creation of more PHP-related packages.\r\n\r\nWhat I wanted to do is create several packages that each use the service from the base package (which handles indexing and exposes convenient functionality) and handle their own tasks: tooltips, autocompletion, annotations, etc. In theory it would also be possible to make this package a 'consumer' of the service that I'm now exposing in the 'base' package (which is essentially just the PHP side, proxy, parser, config, etc.). However, you already stated that you'd rather avoid this, which of course is a valid choice. On the other hand this leaves me with the choice to either drop my idea completely or do it anyway, but at the cost of our collaboration. I can't really say I'm happy with either of these choices as I enjoy working on this package with you.\r\n\r\nIf you wish, you may remove me as collaborator. If I find any serious bugs, I'll continue to report them here so you can also benefit from this."}}