Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kazai777 Builder Journey #80

Open
kazai777 opened this issue Sep 3, 2024 · 12 comments
Open

Kazai777 Builder Journey #80

kazai777 opened this issue Sep 3, 2024 · 12 comments
Assignees

Comments

@kazai777
Copy link

kazai777 commented Sep 3, 2024

Hi everyone,

My name is Zak and I live in France. After doing the student programs, I'm starting my individual grant. I will keep you informed of my progress on my different tasks here.

This week, I'm going to develop an Intellisense VSCode plugin for Gno which has been requested on this issue.

To start with, I analyzed the gnopls code in order to integrate it into my plugin, this took me some time as gnopls lacks a bit of documentation 😅.

I'm now starting to develop the plugin that will integrate gnopls, and I'll keep you posted on my progress here.

See you soon 🚀

@kazai777
Copy link
Author

Update

To begin with, I've integrated the p/demo and stdlibs folders directly into gnopls. I did this so that the user doesn't need to have an up-to-date gno repo on his machine for gnopls to work properly and to offer updates from my plugin, as I explain right after.

Then I integrated gnopls directly into my plugin project. I did this for 2 reasons. The first reason is that by doing this, the user doesn't need to install gnopls on his machine for it to work, the second reason is that by doing this, as I've added repo's that allow autocompletion directly in gnopls, I can propose the update from my vscode plugin, the update will get the new files from stdlibs and p/demo if there are any, and create a new gnopls binary thanks to the makefile.

I'm currently working on the automatic addition of packages used in the code but not yet imported, as well as the deletion of imports not used in the code. I think I'll be able to propose a V1 by the end of the week.

@poroburu
Copy link

Checking in, as I was looking at the similar Jetbrains' IntelliJ IDE plug-in issue: gnolang/gno#2732

Has the unofficial gno VSCode extension been a useful reference? What needs to be iterated on?

https://marketplace.visualstudio.com/items?itemName=harry-hov.gno

@kazai777
Copy link
Author

kazai777 commented Sep 11, 2024

Checking in, as I was looking at the similar Jetbrains' IntelliJ IDE plug-in issue: gnolang/gno#2732

Has the unofficial gno VSCode extension been a useful reference? What needs to be iterated on?

https://marketplace.visualstudio.com/items?itemName=harry-hov.gno

of course, I took a lot of inspiration from this existing plugin by making some modifications for it. I have also made changes to gnopls as mentioned above

@kazai777
Copy link
Author

Update !

I've finalized the first version of the intellisense plugin for gno. I still have to refactor the code and optimize some parts. I'll post a message here when it's done. ✌️

https://github.com/kazai777/vscode-gno/tree/zak-dev

@kazai777
Copy link
Author

Update 🚀

I've finished the first version of the plugin for VSCode, I'm waiting for more information from the team regarding publication on the vscode marketplace.

I'm currently finalizing the wiki and README. I'm also thinking about this issue, which aims to integrate /internal/ into gno.

@kazai777
Copy link
Author

After @gfanton developed a new version of gnopls based on gopls, I created an updated version of the VSCode plugin, using the Go plugin as a foundation. This new version is significantly more complete than the previous one. While I still have a few adjustments to make, it’s fully functional for now. I do need a distinctive icon, possibly in a different color, specifically for .mod files to make them easier to identify in the explorer. I'm currently waiting for feedback from the team.

In the meantime, feel free to try out the plugin and let me know if you encounter any issues or have any suggestions for improvement.

https://github.com/gnoverse/vscode-gno/tree/kazai777/v0.1.0

@kazai777
Copy link
Author

kazai777 commented Oct 26, 2024

For my grant renewal, I talked with @mous1985 about my project idea, which was to create something like Fiverr specifically for the GNO ecosystem. We realized we could join my idea with his current project, Mazad, which he’s already working on. Together, we believe our combined ideas could create a more complete solution. We’ve written up our idea in an issue with clear details on what we want to do and how it will work. I’d like to focus on this joint project for my grant renewal because it could bring real value for the GNO ecosystem.

O1 : Create a dApp with these different realms and packages
KR1 : Finalize the various aspects that require reflection, such as the DAO, the parameters to consider for profile scoring, etc.
KR2 : Finalize the mockups for the front end of the dApp
KR3 : Define the tech stack to use in addition to the use of Gno.
KR4 : Start developing the different realms/packages and the frontend to include the main features, in order to have an MVP quickly

I genuinely believe this dApp can add significant value to the Gno ecosystem, as it addresses a real need and demand. Our aim is to develop, maintain, and evolve this dApp over time, with the vision of transforming it into a startup, going beyond just the creation of a single project. The business model is straightforward: it involves taking a small percentage on payments made between project owners and developers, along with other potential revenue streams currently under consideration, making the dApp economically viable. Please feel free to reach out if you have any questions or need further clarification.

@kazai777
Copy link
Author

To continue my adventure with gno, the things I'll be doing over the next few days are :

See you soon, for the next steps. 🚀

@kazai777
Copy link
Author

Update

It’s been a while since I last updated my Hackerspace. After spending a lot of time developing the vscode-gno extension, I’m excited to let you know that I’ve finished version V0.1.0 🎉.

As you start using it, there will likely be a few minor bugs to fix here and there, but the core functionality is working, and there are quite a few new commands compared to the older version currently on the marketplace.

This version of vscode-gno is designed to work with the gnopls LSP, which, for now, has two main issues mentioned in the following issues:

Once these issues are resolved, the experience should be smooth for all vscode-gno users.

Over time, I’ll be adding new commands based on the feedback I get and the needs of the community. I also hope that other contributors will join in to add new features and improve the extension.

What’s next for me?

First, I’m planning to create a homepage: gno.land/r/kazai777/home. I think it’s a great way to introduce myself to others.

After that, I’d like to work on something to better organize all the packages/realms so that developers can quickly find what they need. This would also include a way to check community reviews for those packages. I’ve shared my idea here:

I’ll keep you updated on my progress soon. See you around! ✌️

@kazai777
Copy link
Author

Since my last update, and exchanges with the gno team. I've added a debugger to my vscode extension, which you can find right here.

Currently, the Gno debugger does not integrate the DAP protocol. This version implements the debugger using the Bridge Pattern, which works as follows:

  • Uses an intermediary layer (GnoDebugSession) that translates commands
  • Communicates with the debugger via a child process
  • Manually parses the debugger's output

This implementation is not fully optimized yet, so I am marking this PR as a draft until the DAP protocol is implemented to ensure an optimal debugger in the extension.

The last small problems remaining with the use of the extension come from gnopls. That's why I'm currently working on resolving gnopls issues. As the codebase is really big, it's taking a bit of time, but it should progress very soon.

@thekazai777
Copy link

I'm writing this message from a secondary account, as I currently don't have access to my main GitHub account.
Recently, I've been working on implementing tlin in the VSCode extension for gno.
This is functional and available on this branch:

It will be merged to the main branch very soon, as soon as I regain access to my main GitHub account.
Secondly, I fixed this issue on gnopls:

This resolves the problem with documentation links for imports, where packages gno.land/p... redirect to their source on gno.land and imports from the stdlibs redirect to the source on the gno GitHub. I'm currently working on resolving this issue on gnopls:

I'll keep you updated as soon as there's progress.

@thekazai777
Copy link

Update ! 🚀

I have currently started developing the KONTRIBZ dApp. It aims to have a project and bounties manager that is 100% onchain.

I had already proposed this idea a few months ago, but since I had to finish the first version of the VSCode plugin as a priority, I hadn't started it yet. You can find all the information about this project and its progress in this journey:

The first objective will be to set up the part for organizations, so they can create their profile, assign roles to their contributors (admin, core team, contributor, etc.) and create projects/bounties.

I will keep you informed of the different advances of the project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

8 participants