Introducing Rust Language Server, source release

原文自:internals.rust-lang.org
作者:jntrnr

@nrc and I have been hard at work on IDE support, turning the Rust Language Server demo weshowed at RustConf2.2kinto an actual project. Today, we're making our firstsource pre-alpha release1.8kof the project.

We're excited about what the RLS project will mean for Rust development in the future. The RLS aims at being a self-contained, full-featured application for IDE support. By being self-contained, and following a simple protocol, all the core IDE functionality will be available to any editor.

At least... that's the theory. We still have a lot of work to get there. We need developers, testers, and people with expertise in various editors to help flesh out the support and make sure the experience feels good.

****The RLS is not yet ready for primetime** **. This early release may eat your hard drive or frighten your neighbors. We recommend only using the RLS with code you are making regular backups of. If you are still interested, you can get started by following theguide605.

Where we need help

First, we're looking for people who want to write code and help flesh out the RLS. There are a growing list ofissues to tackle481as well as a number of FIXMEs in the code.

If you're okay with living on the bleeding edge, we'd love to get testing feedback. Do features stop working in some cases? What were the steps that caused them to break?File an issue40and let us know.

The RLS uses theLanguage Server Protocol1.1k, a json-rpc protocol backed by Microsoft and Red Hat. It's a relatively young protocol. Currently, Eclipse and Visual Studio Code support this protocol, and it should be possible to add support to other editors. It just takes putting in the work.

What works

The current version supports the following features:

  • errors as you type
  • goto def
  • find all refsrenamingtypes/docs/doc links on hover
  • types and docs from the standard library

What doesn't work

Of course, not everything is roses. There are also some shortcomings:

  • Analysis can be slow. This is especially true for initial analysis, which has to work its way through all your dependencies.
  • Projects with dependencies that have custom build steps or compiler plugins aren't supported out of the box. To support them you need to enable the "slow, but more accurate" mode by removing the "-Zno-trans" command to the compiler in build.rs.
  • Please use caution when using this. The RLS can make updates your code when doing tasks like rename/refactor. Always check that the RLS made edits that you expected. If not, file an issue so we can follow up.

Next steps

We're currently working towards an Alpha release, which is geared towards a broader audience. To get there, we've trackingtasks242to help us reach the Alpha.

If you have any questions you can ping nrc or jntrnr on irc.mozilla.org

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 他不在身旁,我怎敢忧伤。 到处都是乏味的句子,乏味的人,
    鸦_白阅读 198评论 0 0
  • 每天早七晚六,两点一线,你围着这台磨转了多久,是不是每天很忙碌,却转来转去转不出这巴掌大的地方,最后还是原地打转 ...
    江小朵阅读 614评论 0 0
  • 坚持读诗两个月,遇上了一群同样喜欢用声音表达自己的人,这让我更加坚定坚持做一件事所带来的益处。 读诗的初始动力,来...
    补拙莫如勤LV阅读 329评论 0 1