{"action":"created","issue":{"url":"https://api.github.com/repos/angelozerr/tern.java/issues/322","labels_url":"https://api.github.com/repos/angelozerr/tern.java/issues/322/labels{/name}","comments_url":"https://api.github.com/repos/angelozerr/tern.java/issues/322/comments","events_url":"https://api.github.com/repos/angelozerr/tern.java/issues/322/events","html_url":"https://github.com/angelozerr/tern.java/issues/322","id":106540786,"number":322,"title":"Eclipse extension point for third party repository and/or tern module contributions","user":{"login":"demonfiddler","id":14012347,"avatar_url":"https://avatars.githubusercontent.com/u/14012347?v=3","gravatar_id":"","url":"https://api.github.com/users/demonfiddler","html_url":"https://github.com/demonfiddler","followers_url":"https://api.github.com/users/demonfiddler/followers","following_url":"https://api.github.com/users/demonfiddler/following{/other_user}","gists_url":"https://api.github.com/users/demonfiddler/gists{/gist_id}","starred_url":"https://api.github.com/users/demonfiddler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/demonfiddler/subscriptions","organizations_url":"https://api.github.com/users/demonfiddler/orgs","repos_url":"https://api.github.com/users/demonfiddler/repos","events_url":"https://api.github.com/users/demonfiddler/events{/privacy}","received_events_url":"https://api.github.com/users/demonfiddler/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angelozerr/tern.java/milestones/10","html_url":"https://github.com/angelozerr/tern.java/milestones/1.1.0","labels_url":"https://api.github.com/repos/angelozerr/tern.java/milestones/10/labels","id":1283867,"number":10,"title":"1.1.0","description":"","creator":{"login":"angelozerr","id":1932211,"avatar_url":"https://avatars.githubusercontent.com/u/1932211?v=3","gravatar_id":"","url":"https://api.github.com/users/angelozerr","html_url":"https://github.com/angelozerr","followers_url":"https://api.github.com/users/angelozerr/followers","following_url":"https://api.github.com/users/angelozerr/following{/other_user}","gists_url":"https://api.github.com/users/angelozerr/gists{/gist_id}","starred_url":"https://api.github.com/users/angelozerr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/angelozerr/subscriptions","organizations_url":"https://api.github.com/users/angelozerr/orgs","repos_url":"https://api.github.com/users/angelozerr/repos","events_url":"https://api.github.com/users/angelozerr/events{/privacy}","received_events_url":"https://api.github.com/users/angelozerr/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":10,"state":"open","created_at":"2015-09-01T11:21:52Z","updated_at":"2015-09-22T08:00:04Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2015-09-15T11:59:58Z","updated_at":"2015-09-24T13:48:43Z","closed_at":"2015-09-21T20:34:01Z","body":"Raised at Angelo's invitation, see https://github.com/angelozerr/tern.java/issues/321.\r\n\r\nThe proposal is for an Eclipse extension point that would enable third party plug-ins to contribute a custom Tern repository (~~or Tern modules~~). These contributions would then be automatically included in the list of available modules when configuring your Tern Eclipse IDE workspace or Tern project. The extension point schema could be designed to allow a complete repository ~~or individual modules~~ to be contributed from a folder within a designated plug-in (defaulting to the plug-in contributing the extension). NOTE: I played around with such a schema but it soon became clear that implementing support for explicit module contributions would be hard, as the existing repository implementation seems to assume a fixed directory structure (metadata, node_modules/tern/defs|lib|node_modules|plugins).\r\n\r\nImplementation note: the current repository implementation assumes that the modules are files in a physical file system, which forces plug-ins to be installed as unpacked directories rather than JAR files (the latter is generally preferred). However, given that these files are loaded by a JavaScript engine there's probably no alternative.\r\n\r\nFrom issue 321: the default tern repository currently enumerates Tern modules as children of the node_modules/tern folder within the ternjs Eclipse plug-in. A binary plug-in's installed image should be treated as a read-only location. Eclipse plug-ins have a writable 'state location' (see Plugin.getStateLocation() : IPath), which would be an appropriate place for maintaining user-downloaded modules. So it might be better to aim for a 'composed repository' that presents the contents of several repositories as if they were a single repository. That way, you could still read the built-in modules from the ternjs binary plug-in image, read downloaded custom modules from the plug-in state location, and read additional repositories contributed by 3rd party Eclipse plug-ins via the proposed extension point from within their contributing plug-ins."},"comment":{"url":"https://api.github.com/repos/angelozerr/tern.java/issues/comments/142933083","html_url":"https://github.com/angelozerr/tern.java/issues/322#issuecomment-142933083","issue_url":"https://api.github.com/repos/angelozerr/tern.java/issues/322","id":142933083,"user":{"login":"demonfiddler","id":14012347,"avatar_url":"https://avatars.githubusercontent.com/u/14012347?v=3","gravatar_id":"","url":"https://api.github.com/users/demonfiddler","html_url":"https://github.com/demonfiddler","followers_url":"https://api.github.com/users/demonfiddler/followers","following_url":"https://api.github.com/users/demonfiddler/following{/other_user}","gists_url":"https://api.github.com/users/demonfiddler/gists{/gist_id}","starred_url":"https://api.github.com/users/demonfiddler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/demonfiddler/subscriptions","organizations_url":"https://api.github.com/users/demonfiddler/orgs","repos_url":"https://api.github.com/users/demonfiddler/repos","events_url":"https://api.github.com/users/demonfiddler/events{/privacy}","received_events_url":"https://api.github.com/users/demonfiddler/received_events","type":"User","site_admin":false},"created_at":"2015-09-24T13:48:43Z","updated_at":"2015-09-24T13:48:43Z","body":"Thanks Angelo, the metadata works now. Have logged an enhancement request https://github.com/angelozerr/tern.java/issues/332 per my earlier comment in this thread."}}