{"action":"closed","issue":{"url":"https://api.github.com/repos/rust-analyzer/rust-analyzer/issues/197","repository_url":"https://api.github.com/repos/rust-analyzer/rust-analyzer","labels_url":"https://api.github.com/repos/rust-analyzer/rust-analyzer/issues/197/labels{/name}","comments_url":"https://api.github.com/repos/rust-analyzer/rust-analyzer/issues/197/comments","events_url":"https://api.github.com/repos/rust-analyzer/rust-analyzer/issues/197/events","html_url":"https://github.com/rust-analyzer/rust-analyzer/issues/197","id":377594176,"node_id":"MDU6SXNzdWUzNzc1OTQxNzY=","number":197,"title":"Roadmap","user":{"login":"aochagavia","id":5196584,"node_id":"MDQ6VXNlcjUxOTY1ODQ=","avatar_url":"https://avatars1.githubusercontent.com/u/5196584?v=4","gravatar_id":"","url":"https://api.github.com/users/aochagavia","html_url":"https://github.com/aochagavia","followers_url":"https://api.github.com/users/aochagavia/followers","following_url":"https://api.github.com/users/aochagavia/following{/other_user}","gists_url":"https://api.github.com/users/aochagavia/gists{/gist_id}","starred_url":"https://api.github.com/users/aochagavia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aochagavia/subscriptions","organizations_url":"https://api.github.com/users/aochagavia/orgs","repos_url":"https://api.github.com/users/aochagavia/repos","events_url":"https://api.github.com/users/aochagavia/events{/privacy}","received_events_url":"https://api.github.com/users/aochagavia/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-11-05T21:40:25Z","updated_at":"2018-11-16T08:16:55Z","closed_at":"2018-11-16T08:16:55Z","author_association":"COLLABORATOR","body":"It would be nice to have a roadmap for the future development of rust-analyzer. I am sure @matklad has some kind of vision in his head, so it would be nice to put that in a document so new contributors (myself included) have an idea of where the project is headed.\r\n\r\nRight now it is clear from the readme that rust-analyzer wants to be a Rust compiler frontend enabling excellent IDE support. However, it is not that clear how we will get there. Which features are we missing? Can we subdivide them in tasks and create tracking issues?\r\n\r\n# Example\r\n\r\nOne of the most useful features (to me) would be autocomplete, but there are no issues about it. We could therefore create issues about implementing:\r\n\r\n1. Path resolution (i.e. go from a path to the place where the name is defined)\r\n1. Type checking\r\n\r\nFrom these two, it seems that path resolution is the most developed at the moment, though I don't know if it is fully implemented. Are there cases in which we cannot obtain the definition from the path?\r\n\r\nRegarding type checking, we need to be able to:\r\n\r\n1. Get the type of the expression under the cursor\r\n1. List the available functions for the type (which means knowing which traits are implemented by it)\r\n\r\nMaybe we could use Chalk for the trait resolution part, though as far as I know this is an experimental library. The same goes for Polonius, which we could use when implementing the ownership system. This kind of discussion could take place in the respective issues, once we create them.\r\n\r\n# Steps to take\r\n\r\nIt would be nice to talk about the future of rust-analysis and maybe even set goals for 2019. We could do this by commenting on this issue, chatting on Discord, or through a video call. As a result of this process, we could create a bunch of issues and tracking issues for the features we want to implement.\r\n\r\nI think the project has a huge potential and I guess many other people share this view. For those of us that would like to contribute on a regular basis, it would be useful to know the desired direction and priorities. That is why it seems worthwhile to take the time for this."}}
{"actor":{"display_login":"aochagavia"}}