opencax / GSoC

Google Summer of Code Projects
30 stars 14 forks source link

Integrated language help feature in OpenSCAD #53

Open t-paul opened 2 years ago

t-paul commented 2 years ago

Outline

Add more interactive help features for built-in functions and modules. Right now there's already a nice summary of parameters linked as cheat sheet. Scope of this projects would be to use this information in extended form and make it available in a more direct way in the editor.

Details

Expected Outcome

Cheat sheet is integrated into the application and additional context help for built-in functions and modules is available.

Project Properties

Skills

Difficulty

Easy

Size

Medium (175h)

Additional Information

qwfrankcheng commented 2 years ago

Hello mentors! My name is Frank Cheng, a CS student at Cornell Univ. Sorry that I learned about GSoC late and just started out. I'm new to open source and excited to contribute to this project idea.

I currently have the OpenSCAD application and source code on my system. I would be grateful if you could give me some guidance on getting started on this project.

Additionally, for the project idea Details, what does the "core data" refer to? ("Find a way to generate the existing HTML format based on the core data")

Thank you!

t-paul commented 2 years ago

Right now there's some initial information embedded in the source which is mainly used in the editor for the popup hints.

https://github.com/openscad/openscad/blob/bd78e4162ac14172087c5be7aaf29372b7093035/src/core/primitives.cc#L946-L951

This could be extended and used in other places and contexts (e.g. more detailed help in editor, help display in console windows, ...).

In addition the data could be used to generate and show the cheat-sheet in the application instead of the external link.

For a more interactive discussion, find us on IRC.

purviporwal1812 commented 1 year ago

I'd want to work on this issue. Please give this problem to me.

linktorahulraj commented 1 year ago

@t-paul I find the project interesting, I want to work on this issue. Please tell me where to start.

t-paul commented 1 year ago

@linktorahulraj First step would be setting up a development environment for OpenSCAD and getting and building the latest code. Depending on what OS you are using this is a bit different but should follow the documentation. Probably easiest setup is on Linux but macOS and Windows should work fine too.

linktorahulraj commented 1 year ago

@t-paul I setup the OpenSCAD environment and open this link given above by you https://github.com/openscad/openscad/blob/bd78e4162ac14172087c5be7aaf29372b7093035/src/core/primitives.cc#L946-L951 what next thing do this please elaborate

linktorahulraj commented 1 year ago

@t-paul When I ran the code on OpenSCAD environment the its showing Parsing design (AST generation)... ERROR: Parser error: syntax error in file openscadfile1.scad, line 27 Execution aborted

linktorahulraj commented 1 year ago

@t-paul Please provide me some resourses to solve the issue.

t-paul commented 1 year ago

@linktorahulraj I don't see how I can help with the information you are giving.

You could start with the example files shipped with OpenSCAD and have a look at the tutorial for getting started. If you see an error, it's important to describe exactly what you are doing and giving the context needed to reproduce the problem, e.g. by providing the file causing the error (assuming it's small or trimmed down to focus on the error).

For some general tips on how to approach this, have a look at the guideline page.

ahmed-kamel646 commented 4 months ago

@t-paul Hello mentors! My name is Ahmed Mohamed Kamel , a CS student ,and I am excited to express my interest in participating in this project . i have already set up the OpenSCAD environment Can you give me a hint to get started?

awschult002 commented 2 days ago

I am not a student, nor am I involved in the summer of code. I am just a random developer that has stumbled onto OpenSCAD.

For documentation, I would highly recommend checking out Doxygen which should be able to create HTML and LaTeX output from source code. Using a simple custom command notation could help to sort out what function documentation should go into a public API help document or not.

Also, I would highly recommend the integration of the Language Server Protocol. This will provide real-time help popups in the editor, and if the project space is setup correctly, then it will also provide real-time help pop ups for any function that is written within the current session. This is, not only, super powerful; but platform agnostic. So if someone wanted to code using Vim or Emacs, they could still get help popups by accessing the LSP.

t-paul commented 1 day ago

@awschult002 this is the wrong place for general discussion, the topics you mention are already covered in the main repository but are out of scope for GSoC. In fact there's even a prototype for LSP.