{"id":13770615,"url":"https://github.com/awslabs/smithy-intellij","last_synced_at":"2025-05-11T03:32:50.191Z","repository":{"id":42972600,"uuid":"334297571","full_name":"awslabs/smithy-intellij","owner":"awslabs","description":"Smithy IntelliJ provides IDE integration for the Smithy IDL.","archived":false,"fork":false,"pushed_at":"2022-03-25T15:16:21.000Z","size":222,"stargazers_count":11,"open_issues_count":7,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-09T23:40:20.727Z","etag":null,"topics":["intellij-plugin","smithy","smithy-models"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/awslabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2021-01-30T00:49:02.000Z","updated_at":"2024-11-12T17:40:58.000Z","dependencies_parsed_at":"2022-09-23T14:31:12.629Z","dependency_job_id":null,"html_url":"https://github.com/awslabs/smithy-intellij","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fsmithy-intellij","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fsmithy-intellij/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fsmithy-intellij/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fsmithy-intellij/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awslabs","download_url":"https://codeload.github.com/awslabs/smithy-intellij/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253514352,"owners_count":21920327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["intellij-plugin","smithy","smithy-models"],"created_at":"2024-08-03T17:00:39.879Z","updated_at":"2025-05-11T03:32:49.696Z","avatar_url":"https://github.com/awslabs.png","language":"Java","funding_links":[],"categories":["IDE Support"],"sub_categories":["Server Code Generators"],"readme":"## Smithy IntelliJ\n[![Build Status](https://github.com/awslabs/smithy-intellij/workflows/ci/badge.svg)](https://github.com/awslabs/smithy-intellij/actions/workflows/ci.yml)\n\n**WARNING: This repository in development. All interfaces are subject to change.**\n\n\u003c!-- Plugin description --\u003e\n**Smithy IntelliJ** provides IDE integration for the [Smithy IDL](https://awslabs.github.io/smithy/) within\nIntelliJ IDEA.  It utilizes [smithy-language-server](https://github.com/awslabs/smithy-language-server) for its\n[Language Server Protocol](https://microsoft.github.io/language-server-protocol/) implementation.\n\u003c!-- Plugin description end --\u003e\n\n## Managing Smithy model dependencies while using the plugin\nWhen using the Smithy Intellij Plugin, dependencies used by the model within the workspace must be specified, so that\nthe plugin can inject them when launching the Smithy Language Server. Dependencies must be specified in the workspace\nat `/build/smithy-dependencies.json` or `.smithy.json`, listing all the required artifacts along with their source\nrepositories:\n```json\n{\n  \"artifacts\": [\n    \"software.amazon.smithy:smithy-aws-traits:1.7.0\",\n    \"software.amazon.smithy:smithy-aws-iam-traits:1.7.0\",\n    \"com.example.my-traits:0.0.1\"\n  ],\n  \"repositories\": [\n    \"file:/Users/me/.m2/repository/\",\n    \"https://repo.maven.apache.org/maven2/\"\n  ]\n}\n```\n\n## Running this plugin for development\nClone the [smithy-language-server](https://github.com/awslabs/smithy-language-server) repository to a separate directory:\n`git clone git@github.com:awslabs/smithy-language-server.git ~/smithy-language-server`\n\nChange to that directory, and build and publish the locally:\n`cd ~/smithy-language-server \u0026\u0026 ./gradlew build publishToMavenLocal`\n\nFrom this plugin directory, use `ideRun` task to start a sandboxed instance of IntelliJ with the plugin loaded:\n`./gradlew runIde`\n\n## Developing the Lexer and Parser classes\nThe classes located at `/src/main/gen` are generated. `SmithyLexer` is generated from the `Smithy.Flex` file via the\n`generateSmithyLexer` Gradle task. `SmithyParser` and its PSI implementation classes are generated from the\n`Smithy.bnf` file via the `generateSmithyParser` Gradle task. The `generateSmithyParser` task requires JDK11 or higher.\nWhen using JDK11 or higher, both tasks will be run prior to compilation during a standard Gradle build.\n\n## Security\n\nSee [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawslabs%2Fsmithy-intellij","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawslabs%2Fsmithy-intellij","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawslabs%2Fsmithy-intellij/lists"}