{"id":20283203,"url":"https://github.com/binhtran432k/ungrammar-language-features","last_synced_at":"2025-04-11T08:21:41.561Z","repository":{"id":252181018,"uuid":"839301004","full_name":"binhtran432k/ungrammar-language-features","owner":"binhtran432k","description":"Language Features for Ungrammar","archived":false,"fork":false,"pushed_at":"2024-11-11T09:07:05.000Z","size":403,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T10:04:50.733Z","etag":null,"topics":["componentmodel","formatter","languageserver","lsp","programming-language","ungrammar"],"latest_commit_sha":null,"homepage":"http://binhtran432k.com/ungrammar-language-features/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/binhtran432k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-07T10:34:19.000Z","updated_at":"2025-01-22T16:24:35.000Z","dependencies_parsed_at":"2024-08-08T06:44:22.129Z","dependency_job_id":"487e051c-0a15-498c-bf57-610ca71dca96","html_url":"https://github.com/binhtran432k/ungrammar-language-features","commit_stats":null,"previous_names":["binhtran432k/ungrammar-language-features"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binhtran432k%2Fungrammar-language-features","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binhtran432k%2Fungrammar-language-features/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binhtran432k%2Fungrammar-language-features/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binhtran432k%2Fungrammar-language-features/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binhtran432k","download_url":"https://codeload.github.com/binhtran432k/ungrammar-language-features/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248360942,"owners_count":21090786,"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":["componentmodel","formatter","languageserver","lsp","programming-language","ungrammar"],"created_at":"2024-11-14T14:13:37.722Z","updated_at":"2025-04-11T08:21:41.543Z","avatar_url":"https://github.com/binhtran432k.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Language Features for Ungrammar files\n\n[![VSCode Version](https://img.shields.io/visual-studio-marketplace/v/binhtran432k.ungrammar-language-features)](https://marketplace.visualstudio.com/items?itemName=binhtran432k.ungrammar-language-features)\n[![VSCode Installs](https://img.shields.io/visual-studio-marketplace/i/binhtran432k.ungrammar-language-features)](https://marketplace.visualstudio.com/items?itemName=binhtran432k.ungrammar-language-features)\n[![VSCode Downloads](https://img.shields.io/visual-studio-marketplace/d/binhtran432k.ungrammar-language-features)](https://marketplace.visualstudio.com/items?itemName=binhtran432k.ungrammar-language-features)\n[![VSCode Stars](https://img.shields.io/visual-studio-marketplace/stars/binhtran432k.ungrammar-language-features)](https://marketplace.visualstudio.com/items?itemName=binhtran432k.ungrammar-language-features)\n[![CI Status](https://github.com/binhtran432k/ungrammar-language-features/actions/workflows/ci.yml/badge.svg)](https://github.com/binhtran432k/ungrammar-language-features/actions)\n\n[Ungrammar](https://github.com/rust-analyzer/ungrammar) is a novel data format\nfor defining concrete syntax trees. This project aims to integrate Ungrammar\nlanguage support into VS Code, providing features to streamline the creation\nand modification of `.ungram` files. By offering a dedicated language\nexperience within the editor, we aim to simplify the development process for\nusers working with this syntax definition format.\n\n![Ungrammar within VS Code](https://github.com/user-attachments/assets/663b32a8-7c3b-41a1-a2b7-03f45418229b)\n\n## Features\n\n### IntelliSense and Validation\n\nWe offer up node name suggestions as you type with IntelliSense. You can also\nmanually see suggestions with the Trigger Suggestions command (`Ctrl+Space`).\n\nWe also perform structural and value verification giving you red squiggles.\nTo disable validation, use the `ungrammar.validate.enable`\n[setting](https://code.visualstudio.com/docs/getstarted/settings).\n\n![IntelliSense](https://github.com/user-attachments/assets/1d35606b-8f3b-434e-88c6-a7fcac0a8c66)\n\n### Quick Navigation\n\nUngrammar files can get large and we support quick navigation to properties\nusing the Go to Symbol command (`Ctrl+Shift+O`).\n\n![Quick Navigation](https://github.com/user-attachments/assets/f5a016fe-dd28-4535-91b8-19a2abb7b242)\n\n### Hovers\n\nWhen hovering over nodes within an Ungrammar data structure, detailed\ncontext-specific information is displayed, aiding in understanding the code's\nstructure and relationships.\n\n![Hover](https://github.com/user-attachments/assets/87199a8d-335a-4322-96d1-7207eee5958e)\n\n### Formatting\n\nYou can format your Ungrammar document using `Shift+Alt+F` or Format Document\nfrom the context menu. To disable validation, use the\n`ungrammar.format.enable`\n[setting](https://code.visualstudio.com/docs/getstarted/settings).\n\nBefore formatting:\n\n![Before Formatting](https://github.com/user-attachments/assets/d4c4e991-bacc-4072-a82b-aeac4e2d22ad)\n\nAfter formatting:\n\n![After Formatting](https://github.com/user-attachments/assets/086f8163-3236-47e4-8a58-3133ea4ce50d)\n\n### Folding\n\nYou can fold regions of source code using the folding icons on the gutter\nbetween line numbers and line start. Folding regions are available for all\nobject and array elements.\n\nBefore folding:\n\n![Before Folding](https://github.com/user-attachments/assets/65483173-443b-44d1-a4be-1f58df9eed6a)\n\nAfter folding:\n\n![After Folding](https://github.com/user-attachments/assets/0a02b8c9-4b8e-4728-a330-9fce97d78c90)\n\n### Annotations\n\nWe provide informative annotations displayed above code elements to aid in code\ncomprehension. These annotations offer quick access to references,\nimplementation details, and other relevant context, enhancing code navigability\nand understanding.\n\n![Annotation](https://github.com/user-attachments/assets/a91f6514-4c62-4117-b750-e06e2af7b037)\n\n### Expand and Shrink Selection\n\nYou can extend (`Alt+Shift+→`) or shrink (`Alt+Shift+←`) the current selection\nto the encompassing syntactic construct (node, alternative, sequence, group,\netc). It works with multiple cursors.\n\n![Expand 1](https://github.com/user-attachments/assets/661a1912-5f0e-4707-a723-bc577de26669)\n![Expand 2](https://github.com/user-attachments/assets/347d9c78-f13e-4563-b502-f8a7a1a73eac)\n![Expand 3](https://github.com/user-attachments/assets/e9bcfa34-ec53-4df8-a08c-e7f31d42e085)\n![Expand 4](https://github.com/user-attachments/assets/df60330d-2388-4b4f-9706-60c58589de81)\n![Expand 5](https://github.com/user-attachments/assets/17d2d1b5-e796-4820-976e-e594f9a608a2)\n\n### Find All References\n\nYou can find all references using `Shift+Alt+F12` to show all references of the\nitem at the cursor location.\n\n![Find All References](https://github.com/user-attachments/assets/4ab19315-26d2-410d-a23f-c81c4af85c41)\n\n### Go to Definition\n\nYou can navigate to the definition of an node using `F12`.\n\nBefore Go to Definition, we are at line 657:\n\n![Before Go to Definition](https://github.com/user-attachments/assets/fcd9c49a-5753-42e9-8f9b-d2a4dcd9ac4a)\n\nAfter Go to Definition, we are at line 588:\n\n![After Go to Definition](https://github.com/user-attachments/assets/30a2d19c-cf85-43a4-829e-dd7225f04b60)\n\n### Highlight Related\n\nYou can highlight related constructs upon hovering over a node. This feature\ndisplays all references to the selected node within the current file, enhancing\ncode navigation and understanding.\n\n![Highlight Related](https://github.com/user-attachments/assets/27c02d61-1ab6-4a95-9264-52f86fa48b0a)\n\n### Rename\n\nYou can efficiently rename symbols across your codebase using the `F2`.\nThis powerful feature automatically updates all references to the selected\nsymbol, ensuring consistency and reducing the potential for errors.\n\n![Rename](https://github.com/user-attachments/assets/edf3feb6-ff96-46df-895f-2e91e1c8d9c6)\n\n### Code Actions\n\nYou can enhance your code formatting with our powerful code actions. Quickly\nand easily rename nodes to specific casing styles including `snake_case`,\n`CONSTANT_CASE`, `camelCase`, and `PascalCase`, ensuring consistent naming\nconventions throughout your project.\n\n![Provide Code Actions](https://github.com/user-attachments/assets/b0de9fd8-85c4-4c36-93cb-d3213e5f30fe)\n\n### Semantic Syntax Highlighting\n\nWe highlight the code semantically. For example, \"Rule\" might be colored\ndifferently depending on whether \"Rule\" is an `Definition` or a `Identifier`. We\ndoes not specify colors directly, instead it assigns a tag (like variable) and\na set of modifiers (like definition) to each token. It's up to the client to\nmap those to specific colors.\n\n![Semantic Syntax Highlighting](https://github.com/user-attachments/assets/485db7a2-33c8-4774-8bfe-c79976636738)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinhtran432k%2Fungrammar-language-features","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinhtran432k%2Fungrammar-language-features","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinhtran432k%2Fungrammar-language-features/lists"}