{"id":24355102,"url":"https://github.com/ferib/proguard-vscode-plugin","last_synced_at":"2026-03-16T11:02:57.854Z","repository":{"id":194545147,"uuid":"690533978","full_name":"ferib/proguard-vscode-plugin","owner":"ferib","description":"Basic highlight extension for ProGuard","archived":false,"fork":false,"pushed_at":"2023-09-13T11:46:45.000Z","size":4,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T17:35:19.519Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ferib.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-12T11:38:42.000Z","updated_at":"2024-01-17T16:06:45.000Z","dependencies_parsed_at":"2023-09-14T02:04:33.647Z","dependency_job_id":null,"html_url":"https://github.com/ferib/proguard-vscode-plugin","commit_stats":null,"previous_names":["ferib/proguard-vscode-plugin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferib%2Fproguard-vscode-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferib%2Fproguard-vscode-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferib%2Fproguard-vscode-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferib%2Fproguard-vscode-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ferib","download_url":"https://codeload.github.com/ferib/proguard-vscode-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243172130,"owners_count":20247885,"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":[],"created_at":"2025-01-18T17:29:05.439Z","updated_at":"2025-12-25T11:56:05.374Z","avatar_url":"https://github.com/ferib.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ferib\n\ntranslate this .vim rule to a VSCode plugin\n\n```vim\n\" Vim syntax file\n\" Language:\tProGuard configuration\n\" Maintainer:\tDavid Reiss \u003cdreiss@fb.com\u003e\n\" Version:\t2\n\n\" Quit when a syntax file was already loaded\nif exists(\"b:current_syntax\")\n  finish\nendif\n\nsyn region proguardComment start=/#/ end=/$/\nsyn match proguardDirective \"-keep[a-z,]*\\\u003e\"\nsyn match proguardDirective \"-\\(optimizations\\|dontwarn\\|assumenosideeffects\\)\\\u003e\"\nsyn match proguardDirective \"-\\(dontshrink\\|dontoptimize\\|dontobfuscate\\)\\\u003e\"\nsyn match proguardWildcard \"\\*\"\nsyn match proguardMembers \"\u003c\\(fields\\|methods\\)\u003e\"\n\nsyn keyword javaType boolean char byte short int long float double\nsyn keyword javaType void\nsyn keyword javaStorageClass static transient final\nsyn keyword javaScopeDecl public protected private abstract\nsyn keyword javaClassDecl class enum\nsyn keyword javaClassDecl extends implements interface\nsyn match javaClassDecl \"@interface\\\u003e\"\nsyn match javaAnnotation \"@\\([_$a-zA-Z][_$a-zA-Z0-9]*\\.\\)*[_$a-zA-Z][_$a-zA-Z0-9]*\\\u003e\"\n\nhi def link proguardComment Comment\nhi def link proguardDirective Statement\nhi def link proguardWildcard Special\nhi def link proguardMembers Identifier\nhi def link javaStorageClass StorageClass\nhi def link javaScopeDecl javaStorageClass\nhi def link javaClassDecl javaStorageClass\nhi def link javaAnnotation PreProc\n\nlet b:current_syntax = \"proguard\"\n```\n\n# ChatGPT\n\nTo translate the given Vim syntax rules for ProGuard configuration to a Visual Studio Code (VSCode) extension, you'll need to create a language definition in a VSCode extension's package.json file and define the corresponding syntax highlighting rules in a .tmLanguage.json file. Below is a rough translation of the provided Vim syntax rules into a VSCode plugin:\n\nCreate a package.json file for your extension:\n```json\n{\n  \"name\": \"proguard-language\",\n  \"displayName\": \"ProGuard Language\",\n  \"description\": \"Syntax highlighting for ProGuard configuration files.\",\n  \"version\": \"1.0.0\",\n  \"engines\": {\n    \"vscode\": \"^1.60.0\"\n  },\n  \"categories\": [\"Languages\"],\n  \"contributes\": {\n    \"languages\": [\n      {\n        \"id\": \"proguard\",\n        \"aliases\": [\"ProGuard\", \"proguard\"],\n        \"extensions\": [\".pro\", \".proguard\"],\n        \"configuration\": \"./language-configuration.json\"\n      }\n    ],\n    \"grammars\": [\n      {\n        \"language\": \"proguard\",\n        \"scopeName\": \"source.proguard\",\n        \"path\": \"./syntaxes/proguard.tmLanguage.json\"\n      }\n    ]\n  }\n}\n```\nCreate a syntaxes/proguard.tmLanguage.json file for your syntax highlighting rules:\n```json\n{\n  \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n  \"name\": \"ProGuard\",\n  \"scopeName\": \"source.proguard\",\n  \"fileTypes\": [\"pro\", \"proguard\"],\n  \"patterns\": [\n    {\n      \"begin\": \"#\",\n      \"end\": \"$\",\n      \"name\": \"comment\"\n    },\n    {\n      \"match\": \"-keep[a-z,]*\\\\\u003e\",\n      \"name\": \"keyword\"\n    },\n    {\n      \"match\": \"-(optimizations|dontwarn|assumenosideeffects)\\\\\u003e\",\n      \"name\": \"keyword\"\n    },\n    {\n      \"match\": \"-(dontshrink|dontoptimize|dontobfuscate)\\\\\u003e\",\n      \"name\": \"keyword\"\n    },\n    {\n      \"match\": \"\\\\*\",\n      \"name\": \"keyword\"\n    },\n    {\n      \"match\": \"\u003c(fields|methods)\u003e\",\n      \"name\": \"keyword\"\n    },\n    {\n      \"match\": \"\\\\b(boolean|char|byte|short|int|long|float|double|void)\\\\b\",\n      \"name\": \"type\"\n    },\n    {\n      \"match\": \"\\\\b(static|transient|final)\\\\b\",\n      \"name\": \"storage\"\n    },\n    {\n      \"match\": \"\\\\b(public|protected|private|abstract)\\\\b\",\n      \"name\": \"modifier\"\n    },\n    {\n      \"match\": \"\\\\b(class|enum|extends|implements|interface)\\\\b\",\n      \"name\": \"class\"\n    },\n    {\n      \"match\": \"@([_$a-zA-Z][_$a-zA-Z0-9]*\\\\.)*[_$a-zA-Z][_$a-zA-Z0-9]*\\\\\u003e\",\n      \"name\": \"annotation\"\n    }\n  ]\n}\n```\nCreate a language-configuration.json file to specify word patterns:\n```json\n{\n  \"comments\": {\n    \"lineComment\": \"#\"\n  },\n  \"brackets\": [[\"{\", \"}\"], [\"[\", \"]\"], [\"(\", \")\"]],\n  \"autoClosingPairs\": [\n    { \"open\": \"{\", \"close\": \"}\" },\n    { \"open\": \"[\", \"close\": \"]\" },\n    { \"open\": \"(\", \"close\": \")\" }\n  ],\n  \"surroundingPairs\": [\n    { \"open\": \"{\", \"close\": \"}\" },\n    { \"open\": \"[\", \"close\": \"]\" },\n    { \"open\": \"(\", \"close\": \")\" },\n    { \"open\": \"'\", \"close\": \"'\" },\n    { \"open\": \"\\\"\", \"close\": \"\\\"\" }\n  ]\n}\n```\nIn your VSCode extension, you can use these files to provide syntax highlighting for ProGuard configuration files. Ensure that your extension is correctly structured and contains the necessary files and configurations.\nAfter creating the extension, you can install it in your VSCode instance, and it should provide syntax highlighting for ProGuard configuration files with the specified rules. Make sure to adapt this code as needed for your specific extension setup and requirements.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferib%2Fproguard-vscode-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fferib%2Fproguard-vscode-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferib%2Fproguard-vscode-plugin/lists"}