Giter VIP home page Giter VIP logo

Comments (3)

pixix4 avatar pixix4 commented on August 11, 2024

Currently the code completion does not work. As you already figurer out, this is due to the use of proc macros. When creating the library I split the key functionality in traits to be as compatible as possible to the ev3dev specification and to reduce the code size. Until now I didn't know that this causes problems with code completion.

Apart from waiting for the rust-analyzer project to support proc marcos (PR) it is possible to lift the functional traits (TachoMotor, Sensor, Findable) to classic macros. This will fix this issue for rust-analyzer. I will try to restructure the mentioned traits to solve this within the next few days.

from ev3dev-lang-rust.

pixix4 avatar pixix4 commented on August 11, 2024

I created a branch feature/improve-lsp-support that removes most of the proc macros and some traits. With rust-analyzer the completion seems to work but for generated functions no inline doc is visible (it is generated for docs.rs but rust-analyzer and clion do not recognize this).

Changes with this branch:

  • Removed the traits Findable, Sensor, Motor, DcMotor, ServoMotor,
    TachoMotor
  • Added corresponding macros to generate the missing functionality
  • Moved constants from module level to struct level to allow simpler imports (eg. color_sensor::MODE_COL_REFLECT -> ColorSensor::MODE_COL_REFLECT)
  • Removed the prelude module cause it is no longer necessary

You can try it locally and check if it brings improvements for you. I will do some test and try to fix the inline doc problem before merging.

from ev3dev-lang-rust.

pixix4 avatar pixix4 commented on August 11, 2024

rust-analyser now supports inline documentation for macro-generated functions. So I think this issue can now be marked as solved.

from ev3dev-lang-rust.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.