-
Notifications
You must be signed in to change notification settings - Fork 39
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
New Tool: Add Cadence support for IntelliJ Platform #19
Comments
Hey, Flow Surfer! Looking forward to work with you! :) |
PLEASE someone take this on :D |
Hi~ |
Awesome, @imrubbish ! :) |
@imrubbish I assume you're going to be using the language server process just like the vscode extension does? I don't know how IntelliJ extensions work, but are you bundling the flow command with your extension, or the languageserver command? |
Hello,
Already got started with the basic skeleton, maybe will come back with some questions after diving in a bit more. |
@NikitasKotsolakos that's perfectly fine! Looking forward to your solution. |
Hello @MaxStalker ,
(My main question is because my idea is to get it "passing", then concentrate on the 2nd part, and then go back and keep iterating / improving, as I plan to do also after the deadline).
Thanks a lot for the help. |
|
It is |
I see exactly the same error in latest VS Code extension. It might be something to do with language-server, yeah... |
Hello @MaxStalker , Also, did you have any time to check the above language-server issue? I actually tried with an older flow-cli version and still got the same error |
@NikitasKotsolakos I checked you code highlighting - really nice start! :) For language server issue - can you tell me how you start that language server and what params do you pass to it? |
Hello @MaxStalker , For block comments I will check it, support was for sure working maybe I broke it by accident. I will ensure it works, as anyway I have already made a few more fixes of small things needed. For themes I will look into it, although, since we use "standard intellij highlighting" (basically I tell it this is a keyword and intellij selects the colour) I would expect it to work immediately. But will check. What exactly do you mean different colours for specific resources? Can you give me an example? The plugin already supports customizing the colours of each "token" (e.g. keyword, string, comment etc) through the settings page. If we want, we can make this more "granular", e.g. allow different colour for decimal or binary number etc. For the language server, I will look into it again starting next week, as I focused on getting the highlight and the publishing stuff for now, if I still have the issue I will let you know. Thanks, |
Hello @MaxStalker
Thus, I also created the pull request for the first milestone of the project. I am a bit busy this week in general, but will still try to so small refinements in the highlighting, and next week I will have much more time to focus and push the LSP support |
Thank you for your commitment, @NikitasKotsolakos ! |
Hey, @NikitasKotsolakos ! |
Hi @MaxStalker , From what I had checked in the announcements, the MR can be opened until Oct 30, 2021, 11:59 PM ET , right? |
Yap, yap :) |
Hi @MaxStalker , It took me a bit longer as I was fighting several small issues, but in the end I have submitted the (last moment) PR, with the semantic analysis and error checking. I only created one PR for the 3 remaining milestones, as milestones 3 and 4 (compatibility and publishing) were "simpler" and already achieved before, and thought it will be easier on your side to review all together. For the LSP support, I am using the suggested lsp4intellij plugin (while it is not very actively updated, it is the best I could find), and the flow-cli for the language server. In the end I didn't bundle the flow-cli in the plugin, but rely on the user having it (being available in the path) as described in the documentation. I thought this was the best approach, as it's also required by the vscode plugin , and allows users (who are developers and thus have it installed in general) to update it without waiting for plugin updates etc. I will be available the next week to make any small tweaks if needed (as I saw in discord it is possible to make small changes requested next week), although I believe the requirements of these tasks are already covered. But I am anyway interested in keep improving this plugin in the future. |
Hey, @NikitasKotsolakos 0/ Also, can you post a link to plugin repository? |
Hello @MaxStalker , What you need is :
If you still have issues, can you let me know you OS / if you get anything more specific on the error? I was able to test on Linux and Windows, but haven't been able to test on Mac as I don't own one. I will look into making the Documentation more clear on how to get started, as I realise I didn't update all parts I wanted after making the "settings" available. |
Good day @NikitasKotsolakos ! Thanks so much for all your hardwork & participation. In order to finalize winners & prepare for prize payout, we'll need the following actions from your end. Please provide the following information by Nov 17, 2021, (in this GH Issue is fine): 1. Team Information
🎖IMPORTANT: We will only proceed with prize payouts once all members have confirmed with 👍 on the post. 2. Video Demo (optional)
We will be hosting Closing Ceremonies on November 23rd, 8AM PT where we'll having closing remarks from Dete & will be announcing the winners! I'll share the details here before Nov 17. |
Hello @kimcodeashian Team Information
I will look into if I can make a small quick demo |
Hi @kimcodeashian , |
Awesome thanks for doing this @NikitasKotsolakos! |
Hey folks, We've received and reviewed over 82 submissions! What an amazing community on Flow! To commemorate all the hard work done, we have finalized winners and will be announcing them during our Closing Ceremony on Nov 23rd, 8AM PT. Be sure to join us - there may be some attendance prizes & a keynote from our CTO, Dete 😉! RSVP here so you don't miss out! See you then! |
Description (Problem Statement)
Visual Studio Code and Vim are currently the only code editors that support the Cadence language. We want to expand this support to additional tools so that developers can write Cadence code in the editor of their choice.
For this task, your goal is to integrate basic Cadence editing features into the IntelliJ Platform, an IDE framework developed by JetBrains. Although IntelliJ itself is a Java editor, it is possible to write a plugin that adds Cadence language support to all IntelliJ-based editors (e.g. PyCharm, WebStorm).
Experience Required
Minimum Feature Set (Acceptance Criteria)
Syntax highlighting
The Cadence Visual Studio Code extension defines a grammar for the Cadence language, which is used to support syntax highlighting. You will need to port this grammar to IntelliJ.
Semantic analysis and error checking
The Cadence language includes an implementation of the Language Server Protocol (LSP), defined in the Cadence repository. LSP servers are used by code editors and IDEs, most notably Visual Studio Code, to implement language-specific editor features. You can find a full list of LSP implementations on the Microsoft website.
The Cadence Visual Studio Code extension uses the LSP to report syntax problems and semantic errors (e.g. type errors) back to the developer. You will need to integrate IntelliJ with the Cadence language server to report these same errors inside IntelliJ.
IntelliJ does not support the LSP out of the box; you will need to use a plugin such as this: https://github.com/ballerina-platform/lsp4intellij
Milestone Requirements
Software Requirements
Other Requirements
Documentation
Code standards or guidelines
Judging Criteria
Resources
The text was updated successfully, but these errors were encountered: