{"id":18980844,"url":"https://github.com/sublimetext/ceedling","last_synced_at":"2025-04-19T19:13:45.261Z","repository":{"id":64141794,"uuid":"1596780","full_name":"SublimeText/Ceedling","owner":"SublimeText","description":"Sublime Text plugin for Ceedling C unit testing framework","archived":false,"fork":false,"pushed_at":"2022-12-16T20:27:46.000Z","size":288,"stargazers_count":4,"open_issues_count":0,"forks_count":5,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-29T12:11:13.540Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://throwtheswitch.org","language":"Python","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/SublimeText.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}},"created_at":"2011-04-11T00:04:06.000Z","updated_at":"2024-01-12T18:04:41.000Z","dependencies_parsed_at":"2023-01-29T15:50:12.300Z","dependency_job_id":null,"html_url":"https://github.com/SublimeText/Ceedling","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SublimeText%2FCeedling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SublimeText%2FCeedling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SublimeText%2FCeedling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SublimeText%2FCeedling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SublimeText","download_url":"https://codeload.github.com/SublimeText/Ceedling/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249239345,"owners_count":21235852,"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":"2024-11-08T16:07:55.565Z","updated_at":"2025-04-16T12:31:14.089Z","avatar_url":"https://github.com/SublimeText.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ceedling for Sublime Text 3+\n\nCeedling is a set of tools and libraries for testing and building C applications.\nThis package adds support to Sublime Text 3+ for developing C applications using Ceedling.\n\n\n## Important Note\n\nCeedling for Sublime Text 3+ contains breaking changes with the original Sublime Text 2 version and no longer supports invoking commands using `rake`.\n\nThis reflects changed behaviour introduced in v0.28.1 of the Ceedling gem:\n\n\u003e Using a modern version of Ceedling means that you issue commands like ceedling test:all instead of rake test:all. If you have a continuous integration server or other calling service, it may need to be updated to comply.\n\n\u003e Similarly, older versions of Ceedling actually placed a rakefile in the project directory, allowing the project to customize its own flow. For the most part this went unused and better ways were later introduced. At this point, the rakefile is more trouble than its worth and often should just be removed.\n\nRefer to [CeedlingUpgrade.md](https://github.com/ThrowTheSwitch/Ceedling/blob/master/docs/CeedlingUpgrade.md) for details.\n\n\n## Requirements\nTo use the Ceedling plugin you'll need:\n- Ruby version supported by Ceedling (3.0.x recommended)\n- GCC compiler for default builds\n- Ceedling 0.28.1 or later (tested with 0.31.1)\n\nThe project Wiki has additional information on [installing requirements](https://github.com/SublimeText/Ceedling/wiki/Installing-Ceedling-Requirements).\n\n## Installation\n### Plugin\nThe preferred method of installing the Ceedling for ST3+ plugin is using [Package Control](https://packagecontrol.io/installation).\n\nWith Package Control installed:\n\n- Open the command palette\n- Select `Package Control: Install Packages`\n- Type `Ceedling`\n- Click the package listing to install.\n\nUnity test assert completions are now provided by the [`Unity Test Completions`](https://packagecontrol.io/packages/Unity%20Test%20Completions) package. This package is a recommended install.\n\nTo install both packages in one step:\n- Open the command palatte\n- Select `Package Control: Advanced Install Packages`\n- Enter `Ceedling, Unity Test Completions` \n- Hit return/enter\n\nWhen you launch Sublime Text, it will pick up the contents of these package so that you can consume the goodness they provide.\n\n## Features\n\n### New Project\n`New Project` comes in two flavours.\n\n* The default `Ceedling: New Project` is basic install containing `project.yml`, `src` and `test` folders.\n* `Ceedling: New Project (Local)` adds a `ceedling` executable script, and a `vendor` directory which contains the current version of the Ceedling framework.\n\n\n#### Creating a New Project\n1. Open the command palette (Tools \u003e Command Palette) and type `cnp` to narrow down the options.\n1. Select `Ceedling: New Project` or `Ceedling: New Project (Local)`\n1. A new window will open\n1. Enter project folder location in the panel.\n\n\tFor example `~/projects/drsurly` will create a project folder `drsurly` within the `projects` folder.\\\n`~` expands to the current user home directory.\n1. Hit return/enter.\n\nThe project folder should open in the current window .\n\n#### Customising New Project creation\nThe default parent folder for new projects is set to `~` by default.\n\nTo change the default folder open the Ceedling settings `Preferences » Package Settings » Ceedling » Settings`.\n\nAdd the following entry to `User Settings`, update the path as desired, then save.\n\n\n```JSON\n{\n    \"default_project_folder\": \"~/path/to/parent/folder/\",\n    \"project_options\": [\"--gitignore\", \"--docs\"]\n}\n```\n\n`project_options` provides additional control over project creation.\n\nOptions are disabled by default. Adding an option to `project_options` will enable.\n\n```sh\n--docs  \"Add docs in project vendor directory\"\n\n--local  \"Create a copy of Ceedling in the project vendor directory\"\n\n--gitignore  \"Create a gitignore file for ignoring ceedling generated files\"\n\n--no_configs  \"Don't install starter configuration files\"\n```\n\n#### Adding Ceedling to existing projects\nThe `New Project` module can be used to add Ceedling support to exisiting source code.\\\nExisting files and folders are not overwritten or modified in the process.\\\nUse the path of the existing project when prompted for the location.\n\n\n### Create New Module\n\nThe `Create New Module` command now uses paths relative to the project folder.\n\nSpecifying `basename` will generate the files `test/test_basename.c`, `src/basename.h` and `src/basename.c` by default.\n\nAdditional naming schemes are supported using an abbreviated format identifiers:\n\n| Abbreviation | Naming Scheme | Files |\n|:--|:--|--:|\n| src | header, source, test (default) | 3 |\n| test | test file only | 1 |\n| mch | model, conductor, hardware | 9 |\n| mvp | model, view, presenter | 9 |\n| dhi | driver, hardware, interrupt | 9 |\n| dh | driver, hardware | 6 |\n\n`mch`, `mvp`, `dhi` and `dh` schemes generate header, source and test files for each of the named modules.\n\n### Running tests\nThe Sublime Text build system is used to run all tests.\n\nFrom `Tools » Build System` menu select `Ceedling` as the build system for the project.\n\n| Variant | Ceedling Task | Notes |\n|:--|:--|:--|\n| Default | `test:filename` | Test current module|\n| Test All | `test:all` | Test all modules|\n| Test Changes | `test:delta` | Test changed modules |\n| Test Build only | `test:build_only`  | Build all without testing |\n| Clean and Test file | `clean test:filename` | |\n| Release | `release` | The release config is disabled in new project.yml. |\n\nSelect variants using `Control-Shift-B` (Windows, Linux) /`Command-Shift-B` (macOS).\n\nRun last selected build variant using `Control-B` (Windows, Linux) / `Command-B`(macOS).\n\n\n\n\n### Commands\n\n| Command Name | Description |\n|:--|:--|\n| Ceedling: New Project | `ceedling new name`|\n| Ceedling: New Project (Local) | `ceedling --local new name` |\n| Ceedling: Clean Project | `ceedling clean` |\n| Ceedling: Clobber Project | `ceedling clobber` Removes all generated files including logs |\n| Ceedling: Create New Module | `ceedling create:module name`|\n| Ceedling: Destroy Current Module | Closes all views for test, source and header files associated with current file then calls `ceedling destroy:module name`|\n| Ceedling: Open Module Header | Opens header for current module |\n| Ceedling: Open Module Source | Opens source for current module |\n| Ceedling: Open Module Test | Open test for current module |\n| Ceedling: Open Next Module File | Cycle through header, source and test for current module |\n| Ceedling: Open Module Files | Open test, source, header files for the currently active file in 2 column layout |\n| Ceedling: Toggle Logging | Toggle current logging setting |\n| Ceedling: Toggle Verbose | Toggle verbose output |\n| Ceedling: Edit Project Configuration | Opens `project.yml` |\n| Ceedling: Test Summary | Print summary of previously run tests |\n| Ceedling: Version | Print version information for ceedling used in current project. |\n| Ceedling: Environment | Display ENV variables set by ceedling |\n\n\n### Key mappings\n\nNote: key mappings are disabled by default.\n\n| Key command | Function |\n|:--|:--|\n|`ctrl+super-h` | Open Header File |\n|`ctrl+super-s` | Open Source File |\n|`ctrl+super-t` | Open Test File |\n|`ctrl+super-.` | Open Module Files in 2 column layout |\n|`ctrl+super-right` | Cycle through module files |\n\n\nTo use these key mappings go to `Preferences » Package Settings » Ceedling » Key Bindings`. Copy the commented bindings from the left panel to the User `Default.sublime-keymap` on the right and uncomment by selecting then `Edit » Comments » Toggle Block Comments`.\n\nSee the [Key Bindings](https://www.sublimetext.com/docs/key_bindings.html) documetation for more information on setting key assignments.\n\n\n## Snippets\n\nUnity test snippets are now provided by the `Unity Test Completions` package.\nThe package provides 467 snippets covering 99.79% of Unity tests.\n\nUnity Test Completions package can be installed using PackageControl.\n- [Unity Test Completions](https://github.com/pajacobson/unity_test_completions)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsublimetext%2Fceedling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsublimetext%2Fceedling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsublimetext%2Fceedling/lists"}