{"id":21396763,"url":"https://github.com/curs3w4ll/neokit","last_synced_at":"2026-04-30T16:32:51.739Z","repository":{"id":181780838,"uuid":"667295539","full_name":"Curs3W4ll/NeoKit","owner":"Curs3W4ll","description":"A standard module containing utility functions.","archived":false,"fork":false,"pushed_at":"2024-08-17T23:38:17.000Z","size":119,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-11T02:50:17.991Z","etag":null,"topics":["lua","neokit","neovim","neovim-plugin","nvim","vim"],"latest_commit_sha":null,"homepage":"https://curs3w4ll.github.io/NeoKit/","language":"Lua","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/Curs3W4ll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":["Curs3W4ll"],"custom":["https://paypal.me/corentinhervaud"]}},"created_at":"2023-07-17T07:27:23.000Z","updated_at":"2025-01-02T23:34:22.000Z","dependencies_parsed_at":"2024-11-27T06:16:52.209Z","dependency_job_id":null,"html_url":"https://github.com/Curs3W4ll/NeoKit","commit_stats":null,"previous_names":["curs3w4ll/neokit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Curs3W4ll/NeoKit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Curs3W4ll%2FNeoKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Curs3W4ll%2FNeoKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Curs3W4ll%2FNeoKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Curs3W4ll%2FNeoKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Curs3W4ll","download_url":"https://codeload.github.com/Curs3W4ll/NeoKit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Curs3W4ll%2FNeoKit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32470879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["lua","neokit","neovim","neovim-plugin","nvim","vim"],"created_at":"2024-11-22T14:28:54.562Z","updated_at":"2026-04-30T16:32:51.724Z","avatar_url":"https://github.com/Curs3W4ll.png","language":"Lua","funding_links":["https://github.com/sponsors/Curs3W4ll","https://paypal.me/corentinhervaud"],"categories":[],"sub_categories":[],"readme":"[![CI](https://github.com/Curs3W4ll/NeoKit/workflows/CI/badge.svg)](https://github.com/Curs3W4ll/NeoKit/actions)\n\n# NeoKit\n\nA standard module containing utility functions.  \nMake your code more explicit and meaningful.\n\nNote that this library is a bit useless outside of Neovim since some functions require Neovim functions. It should be usable with any recent version of Neovim though.\n\nAt the moment, this plugin is under construction. Expect changes to the way it is structured.\n\n## Installation\n\nUsing [Vim plug](https://github.com/junegunn/vim-plug):\n\n```vim\nPlug 'Curs3W4ll/neokit'\n```\n\nUsing [Packer](https://github.com/wbthomason/packer.nvim):\n\n```lua\nuse \"Curs3W4ll/neokit\"\n```\n\nUsing [Lazy](https://github.com/folke/lazy.nvim):\n\n```lua\nrequire(\"lazy\").setup({\n    \"Curs3W4ll/NeoKit\",\n})\n```\n\n## Usage\n\nUse it like any Lua module\n\n```lua\nlocal neokit = require(\"neokit\")\n\nprint(neokit.str.ensureLastChar(\"Hello\", \"!\")) -- Hello!\n\n-- OR\n\nlocal str = require(\"neokit.str\")\n\nprint(str.ensureLastChar(\"Hello\", \"!\")) -- Hello!\n```\n\n## Modules\n\nYou can find more details about modules at https://curs3w4ll.github.io/NeoKit/\n\n- [`neokit.array`](https://curs3w4ll.github.io/NeoKit/modules/array.html)\n- [`neokit.colors`](https://curs3w4ll.github.io/NeoKit/modules/colors.html)\n- [`neokit.fs`](https://curs3w4ll.github.io/NeoKit/modules/fs.html)\n- [`neokit.str`](https://curs3w4ll.github.io/NeoKit/modules/str.html)\n- [`neokit.table`](https://curs3w4ll.github.io/NeoKit/modules/table.html)\n- [`neokit.vim`](https://curs3w4ll.github.io/NeoKit/modules/vim.html)\n\n# Contributing\n\nHelp is welcome!  \nYou are encouraged to submit new issues and pull requests to improve this plugin.\n\nPlease read the [contribution guidelines](./CONTRIBUTING.md) first.\n\n## Useful commands\n\nTo ease interactions with the project, you can use the project's Makefile.  \nThis Makefile defines a set of rules running commands for you.\n\nYou can execute `make help` to get more details about Makefile rules defined for the project.\n\nWith the Makefile, you can run tests, linter, formatter, and generate documentation...\n\n## Run unit tests\n\nYou can use `make test` to run the project's unit test.  \nTest files are located under the `tests/` directory.\n\nNote that this will run every test of the project.  \nIf you want to run a specific test, you can run only one test file by defining the `TEST_FILE` argument.\n```sh\nmake test TEST_FILE=arrray_spec.lua\n```\n\n## Watchers\n\nTo ease the unit tests development and the use of [TDD method](https://fr.wikipedia.org/wiki/Test_driven_development), \n\n\u003e [!IMPORTANT]\n\u003e These watchers are available for UNIX users only.\n\nThere are currently two watchers, one to run the linter, and one to run unit tests.  \nThese watchers will execute the command again each time the code is modified.\n\n```sh\nmake watch-lint\nmake watch-test\n```\n\n\u003e [!NOTE]\n\u003e You can use the `TEST_FILE` argument with the watcher too\n\n## Automatic workflows\n\nSome things are automatically done by the Github workflow made for the project.\n\n### Formatting\n\nEach time new code is pushed on the `main` branch, the formatter will be launched automatically and the new version of the formatted code will be pushed.\n\n### Documentation generation\n\nEach time new code is pushed on the `main` branch, the workflow will automatically generate a new version of the HTML documentation and publish it [here](https://curs3w4ll.github.io/NeoKit/).\n\n### Mandatory checks\n\nSome checks (that are mandatory to merge a PR) are automatically done by workflow too.\n\nEach time a new PR is created or updated, the workflow will automatically check if:\n- Unit tests are passing\n- Linter does not yell any warning\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurs3w4ll%2Fneokit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcurs3w4ll%2Fneokit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurs3w4ll%2Fneokit/lists"}