{"id":13531137,"url":"https://github.com/xmake-io/xmake-vscode","last_synced_at":"2025-05-16T09:03:07.660Z","repository":{"id":37937025,"uuid":"105385229","full_name":"xmake-io/xmake-vscode","owner":"xmake-io","description":"🍩 A XMake integration in Visual Studio Code","archived":false,"fork":false,"pushed_at":"2025-03-28T22:26:32.000Z","size":8883,"stargazers_count":240,"open_issues_count":59,"forks_count":60,"subscribers_count":9,"default_branch":"dev","last_synced_at":"2025-04-12T04:49:13.652Z","etag":null,"topics":["editor-plugin","lua","plugin","visual-studio","vscode","xmake","xmake-vscode"],"latest_commit_sha":null,"homepage":"https://xmake.io","language":"TypeScript","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/xmake-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"zenodo":null},"funding":{"github":"waruqi","open_collective":"xmake","custom":"https://xmake.io/#/sponsor"}},"created_at":"2017-09-30T16:54:48.000Z","updated_at":"2025-04-10T16:04:51.000Z","dependencies_parsed_at":"2024-01-13T23:18:41.152Z","dependency_job_id":"1c3f3ad3-4723-43f7-b9e6-8313cad7b6d9","html_url":"https://github.com/xmake-io/xmake-vscode","commit_stats":{"total_commits":343,"total_committers":33,"mean_commits":"10.393939393939394","dds":0.2274052478134111,"last_synced_commit":"30048e9273265f27534cbd438f4a8afb0edfcdc2"},"previous_names":[],"tags_count":114,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmake-io%2Fxmake-vscode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmake-io%2Fxmake-vscode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmake-io%2Fxmake-vscode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmake-io%2Fxmake-vscode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xmake-io","download_url":"https://codeload.github.com/xmake-io/xmake-vscode/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501555,"owners_count":22081528,"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":["editor-plugin","lua","plugin","visual-studio","vscode","xmake","xmake-vscode"],"created_at":"2024-08-01T07:01:00.391Z","updated_at":"2025-05-16T09:03:07.640Z","avatar_url":"https://github.com/xmake-io.png","language":"TypeScript","funding_links":["https://github.com/sponsors/waruqi","https://opencollective.com/xmake","https://xmake.io/#/sponsor"],"categories":["Plugins"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"http://xmake.io\"\u003e\n    \u003cimg width=\"200\" heigth=\"200\" src=\"https://github.com/xmake-io/xmake-vscode/raw/master/res/logo256.png\"\u003e\n  \u003c/a\u003e\n\n  \u003ch1\u003exmake-vscode\u003c/h1\u003e\n\n  \u003cdiv\u003e\n    \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=tboox.xmake-vscode#overview\"\u003e\n      \u003cimg src=\"https://img.shields.io/vscode-marketplace/v/tboox.xmake-vscode.svg?style=flat-square\" alt=\"Version\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=tboox.xmake-vscode#overview\"\u003e\n      \u003cimg src=\"https://img.shields.io/vscode-marketplace/d/tboox.xmake-vscode.svg?style=flat-square\" alt=\"Downloads\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=tboox.xmake-vscode#review-details\"\u003e\n      \u003cimg src=\"https://img.shields.io/vscode-marketplace/r/tboox.xmake-vscode.svg?style=flat-square\" alt=\"Rating\u0026Review\" /\u003e\n    \u003c/a\u003e\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003ca href=\"https://github.com/xmake-io/xmake-vscode/blob/master/LICENSE.md\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/tboox/xmake-vscode.svg?colorB=f48041\u0026style=flat-square\" alt=\"license\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.reddit.com/r/tboox/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/chat-on%20reddit-ff3f34.svg?style=flat-square\" alt=\"Reddit\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://gitter.im/tboox/tboox?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge\"\u003e\n      \u003cimg src=\"https://img.shields.io/gitter/room/tboox/tboox.svg?style=flat-square\u0026colorB=96c312\" alt=\"Gitter\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://t.me/tbooxorg\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/chat-on%20telegram-blue.svg?style=flat-square\" alt=\"Telegram\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://jq.qq.com/?_wv=1027\u0026k=5hpwWFv\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/chat-on%20QQ-ff69b4.svg?style=flat-square\" alt=\"QQ\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"http://xmake.io/pages/donation.html#donate\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/donate-us-orange.svg?style=flat-square\" alt=\"Donate\" /\u003e\n    \u003c/a\u003e\n  \u003c/div\u003e\n\n  \u003cp\u003eA XMake integration in Visual Studio Code\u003c/p\u003e\n\u003c/div\u003e\n\n## Introduction\n\nA XMake integration in Visual Studio Code.\n\nYou need install [xmake](https://github.com/xmake-io/xmake) first and a project with `xmake.lua`.\n\nPlease see [xmake-github](https://github.com/xmake-io/xmake) and [website](http://xmake.io) if you want to known more about xmake.\n\n## Features\n\n* Quickstart\n* Colorization\n* Completion Lists\n* StatusBar\n* Commands\n* Configuration\n* Build\n* Run and Debug\n* Record and Playback\n* Problem\n\n## Quickstart\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/quickstart.gif\" width=\"60%\" /\u003e\n\n## Colorization and Completion Lists\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/completion.gif\" width=\"60%\" /\u003e\n\n## StatusBar\n\n![statusbar](https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/statusbar.png)\n\n## Commands\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/commands.png\" width=\"60%\" /\u003e\n\n## Configuration\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/configure.gif\" width=\"60%\" /\u003e\n\n## Build\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/build.gif\" width=\"60%\" /\u003e\n\n## Run and Debug\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/debug.gif\" width=\"60%\" /\u003e\n\n## Record and Playback\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/record.gif\" width=\"60%\" /\u003e\n\n## Problem\n\n\u003cimg src=\"https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/problem.gif\" width=\"60%\" /\u003e\n\n## IntelliSense\n\nxmake-vscode will generate `.vscode/compile_commands.json` file, so you need only add it to `.vscode/c_cpp_properties.json` to enable IntelliSense.\n\nfor example (`.vscode/c_cpp_properties.json`):\n\n```json\n{\n    \"configurations\": [\n        {\n            \"compileCommands\": \".vscode/compile_commands.json\"\n        }\n    ],\n    \"version\": 4\n}\n```\n\n### How can I generate c_cpp_properties.json?\n\nThese configuration settings are stored in your project's c_cpp_properties.json file. To edit this file, in VS Code, select C/C++: Edit Configurations (UI) from the Command Palette (⇧⌘P):\n\nPlease see [IntelliSense for cross-compiling](https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation)\n\n![](https://code.visualstudio.com/assets/docs/cpp/cpp/command-palette.png)\n\n## Debugging\n\nDebug via launch configurations (launch.json) is accessible only with Run-\u003eStart Debugging (not F5 keybinding) or via Launch Debug command.\n\n|attribute          |type  |         |\n|-------------------|------|---------|\n|**name**           |string| *Required.* Launch configuration name, as you want it to appear in the Run and Debug panel.\n|**type**           |string| *Required.* Set to `xmake`.\n|**request**        |string| *Required.* Session initiation method:`launch` or `attach`.\n|**target**         |string| *Required.* XMake target.\n|env                |object| \tAdditional environment variables. `{\"PATH\" : \"some/path\"}`\n|args               |string ❘ [string]| Command line parameters. If not defined args are taken from `debuggingTargetsArguments` config.\n|cwd                |string| If not defined xmake will use the target directory.\n|stopAtEntry        |boolean| If set to true, the debugger should stop at the entry-point of the target (ignored on attach). Default value is false.\n|terminal           |string| Destination of stdio streams: \u003cul\u003e\u003cli\u003e`console` for Debug Console\u003c/li\u003e\u003cli\u003e`integrated` (default) for VSCode integrated terminal\u003c/li\u003e\u003cli\u003e`external` for a new terminal window\u003c/li\u003e\u003cli\u003e`newExternal` for a new terminal window but only with cli application (only cpptools / with lldb it will be converted to `external`)\u003c/li\u003e\u003c/ul\u003e|\n\nExample:\n\n```json\n{\n    \"configurations\": [\n    {\n       \"name\": \"XMake Debug\",\n        \"type\": \"xmake\",\n        \"request\": \"launch\",\n        \"target\": \"example\",\n        \"stopAtEntry\": true\n    }\n  ]\n}\n```\n\n### Configurations related to debugging\n\n#### Debugger extension\n\nYou can choose the debugger extension with `xmake.debugConfigType`, set it to:\n\n* `default` for cpptools debugger\n* `codelldb` for lldb debugger\n\n#### Envs behaviour\n\nYou can choose the behaviour between xmake envs and envs that are defined in `launch.json`\nFor an xmake envs that are like this `{\"PATH: \"path/from/xmake\"}` and in `launch.json`\n`{\"PATH\": \"path/from/config\"}`.\n\nDefault is `merge`.\n\n* With `xmake.envBehaviour` set to `merge`, the result is: `{\"PATH\": \"path/from/xmake;path/from/config\"}`.\n* With `xmake.envBehaviour` set to `erase`, the result is: `{\"PATH\": \"path/from/xmake\"}`\n* And with `xmake.envBehaviour` set to `override`, the result is: `{\"PATH\": \"path/from/config\"}`.\n\nXMake envs will only be replaced for the same key, if another xmake env key is present, it will be present in the final result.\n\n## Global Configuration\n\nWe can configure them in settings.json\n\n```json\n{\n    \"configuration\": {\n        \"type\": \"object\",\n        \"title\": \"XMake configuration\",\n        \"properties\": {\n            \"xmake.executable\": {\n                \"type\": \"string\",\n                \"default\": \"xmake\",\n                \"description\": \"The xmake executable name / path\"\n            },\n            \"xmake.logLevel\": {\n                \"type\": \"string\",\n                \"default\": \"normal\",\n                \"description\": \"The Log Level: normal/verbose/minimal\",\n                \"enum\": [\n                    \"verbose\",\n                    \"normal\",\n                    \"minimal\"\n                ]\n            },\n            \"xmake.buildLevel\": {\n                \"type\": \"string\",\n                \"default\": \"normal\",\n                \"description\": \"The Build Output Level: normal/verbose/warning/debug\",\n                \"enum\": [\n                    \"verbose\",\n                    \"normal\",\n                    \"warning\",\n                    \"debug\"\n                ]\n            },\n            \"xmake.buildDirectory\": {\n                \"type\": \"string\",\n                \"default\": \"${workspaceRoot}/build\",\n                \"description\": \"The Build Output Directory\"\n            },\n            \"xmake.installDirectory\": {\n                \"type\": \"string\",\n                \"default\": \"\",\n                \"description\": \"The Install Output Directory\"\n            },\n            \"xmake.packageDirectory\": {\n                \"type\": \"string\",\n                \"default\": \"\",\n                \"description\": \"The Package Output Directory\"\n            },\n            \"xmake.workingDirectory\": {\n                \"type\": \"string\",\n                \"default\": \"${workspaceRoot}\",\n                \"description\": \"The Project Working Directory with the root xmake.lua\"\n            },\n            \"xmake.androidNDKDirectory\": {\n                \"type\": \"string\",\n                \"default\": \"\",\n                \"description\": \"The Android NDK Directory\"\n            }\n        }\n    }\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmake-io%2Fxmake-vscode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxmake-io%2Fxmake-vscode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmake-io%2Fxmake-vscode/lists"}