{"action":"created","issue":{"url":"https://api.github.com/repos/github-linker/core/issues/21","labels_url":"https://api.github.com/repos/github-linker/core/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/github-linker/core/issues/21/comments","events_url":"https://api.github.com/repos/github-linker/core/issues/21/events","html_url":"https://github.com/github-linker/core/issues/21","id":102625445,"number":21,"title":"Add support for more languages","user":{"login":"ijks","id":9218062,"avatar_url":"https://avatars.githubusercontent.com/u/9218062?v=3","gravatar_id":"","url":"https://api.github.com/users/ijks","html_url":"https://github.com/ijks","followers_url":"https://api.github.com/users/ijks/followers","following_url":"https://api.github.com/users/ijks/following{/other_user}","gists_url":"https://api.github.com/users/ijks/gists{/gist_id}","starred_url":"https://api.github.com/users/ijks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ijks/subscriptions","organizations_url":"https://api.github.com/users/ijks/orgs","repos_url":"https://api.github.com/users/ijks/repos","events_url":"https://api.github.com/users/ijks/events{/privacy}","received_events_url":"https://api.github.com/users/ijks/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-23T14:25:50Z","updated_at":"2015-08-25T20:40:26Z","closed_at":"2015-08-25T20:40:26Z","body":"Looking through the docs and the source, it seems only JavaScript's `require` is linked. JS is a popular language, but not the only one out there. It would be nice if the extension supported more languages, as the name 'github-linker' implies a scope wider than just `require`.\r\n\r\nExamples for a few languages (please comment if I made an error or missed something):\r\n\r\n- [ ] [Python][py]\r\n```python\r\nimport module\r\nfrom module import thing\r\nimport module as other_module\r\n```\r\n- [ ] [Ruby][rb]\r\n```ruby\r\nrequire 'file'\r\nrequire_relative\r\n```\r\n- [ ] [Haskell][hs]\r\n```haskell\r\nimport Mod\r\nimport qualified Mod\r\n-- A lot of other combinations excluded. See the link.\r\n-- There might also be a formal grammar somewhere.\r\n```\r\n- [ ] [Rust][rs]\r\n```rust\r\nextern crate rust_crate\r\n\r\nuse rust_crate\r\nuse rust_crate::Thing\r\nuse rust_crate::Thing as OtherThing\r\nuse rust_crate::{ThingOne, ThingTwo}\r\n```\r\n- [ ] [Go][golang]\r\n```go\r\nimport \"package\"\r\nimport p \"package\"\r\nimport . \"package\"\r\n```\r\n\r\nAnd there are of course a lot of other popular languages that support (some form of) modules, like Java, C#, C(++), D, Lisps, OCaml, Perl, etc., but I would suggest limiting support to languages that have a sizable amount of repositories on GitHub. Language-specific package repositories (e.g. CPAN, PyPI, crates.io) could also be used as a fallback when a GitHub repo is not found.\r\n\r\nA nice refinement would also be to support linking within a repo when internal modules are imported.\r\n\r\nSee also: #13, #16, #17, github-linker/chrome-extension#33, github-linker/chrome-extension#37\r\n\r\n[py]: https://docs.python.org/3/tutorial/modules.html\r\n[rb]: http://ruby-doc.org/core-2.2.3/Kernel.html#method-i-require\r\n[hs]: https://wiki.haskell.org/Import\r\n[rs]: https://doc.rust-lang.org/reference.html#extern-crate-declarations\r\n[golang]: http://golang.org/ref/spec#Import_declarations"},"comment":{"url":"https://api.github.com/repos/github-linker/core/issues/comments/134733689","html_url":"https://github.com/github-linker/core/issues/21#issuecomment-134733689","issue_url":"https://api.github.com/repos/github-linker/core/issues/21","id":134733689,"user":{"login":"stefanbuck","id":1393946,"avatar_url":"https://avatars.githubusercontent.com/u/1393946?v=3","gravatar_id":"","url":"https://api.github.com/users/stefanbuck","html_url":"https://github.com/stefanbuck","followers_url":"https://api.github.com/users/stefanbuck/followers","following_url":"https://api.github.com/users/stefanbuck/following{/other_user}","gists_url":"https://api.github.com/users/stefanbuck/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanbuck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanbuck/subscriptions","organizations_url":"https://api.github.com/users/stefanbuck/orgs","repos_url":"https://api.github.com/users/stefanbuck/repos","events_url":"https://api.github.com/users/stefanbuck/events{/privacy}","received_events_url":"https://api.github.com/users/stefanbuck/received_events","type":"User","site_admin":false},"created_at":"2015-08-25T20:40:26Z","updated_at":"2015-08-25T20:40:26Z","body":"Thanks for collection all the stuff together, it is really helpful. I moved all the issues to [chrome-extension](https://github.com/github-linker/chrome-extension/issues), because this will be the new main repository soon. \r\n\r\nAfter a bigger refactoring of the core, I will start implementing most / all (we will see ) of them step by step."}}