{"id":14981691,"url":"https://github.com/mrsloth-dev/42-norminettenvim","last_synced_at":"2025-06-29T07:37:55.840Z","repository":{"id":255316222,"uuid":"848912508","full_name":"MrSloth-dev/42-NorminetteNvim","owner":"MrSloth-dev","description":"A simple linter plugin for format checking and check function sizes with norminette inside the buffer  through diagnostics.","archived":false,"fork":false,"pushed_at":"2025-05-09T15:31:37.000Z","size":12278,"stargazers_count":24,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-09T15:34:47.608Z","etag":null,"topics":["42","42porto","42portugal","42school","linter","neovim","neovim-plugin","norminette","nvim","nvim-lua","nvim-plugin","plugin"],"latest_commit_sha":null,"homepage":"","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/MrSloth-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-28T16:26:15.000Z","updated_at":"2025-05-06T11:11:26.000Z","dependencies_parsed_at":"2024-09-07T02:34:06.143Z","dependency_job_id":"2660d8dd-60be-4ef9-8473-dd7916bd7b1e","html_url":"https://github.com/MrSloth-dev/42-NorminetteNvim","commit_stats":{"total_commits":28,"total_committers":2,"mean_commits":14.0,"dds":0.1071428571428571,"last_synced_commit":"9e5b973c29ea0223553a4b661dd7d818145edb2e"},"previous_names":["mrsloth-dev/norminettediagnostics","mrsloth-dev/42-norminettenvim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MrSloth-dev/42-NorminetteNvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSloth-dev%2F42-NorminetteNvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSloth-dev%2F42-NorminetteNvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSloth-dev%2F42-NorminetteNvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSloth-dev%2F42-NorminetteNvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrSloth-dev","download_url":"https://codeload.github.com/MrSloth-dev/42-NorminetteNvim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSloth-dev%2F42-NorminetteNvim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262558546,"owners_count":23328556,"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":["42","42porto","42portugal","42school","linter","neovim","neovim-plugin","norminette","nvim","nvim-lua","nvim-plugin","plugin"],"created_at":"2024-09-24T14:04:04.894Z","updated_at":"2025-06-29T07:37:55.834Z","avatar_url":"https://github.com/MrSloth-dev.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 42-NorminetteNvim\nThis plugin allows to show the norminette errors inside your buffer, through diagnostics and it's compatible with quickfixlist!\nIt works for `.c` ,`.h` and `.py` files.\n\n![Demo](https://github.com/MrSloth-dev/42-NorminetteNvim/blob/main/Showcase/Showcase.gif?raw=true)\n\u003cbr\u003e\n## Install\n\n\u003cdetails\u003e\n\t\n\u003csummary\u003e \u003cb\u003e📦 Packer 📦\u003c/b\u003e\u003c/summary\u003e\n\n``` lua\nuse {\n    \"MrSloth-dev/42-NorminetteNvim\",\n    requires = { \"nvim-lua/plenary.nvim\", \"echasnovski/mini.icons\" },\n    config = function()\n        require(\"norminette\").setup({\n\t    norm_keybind = \"\u003cleader\u003en\",\n\t    size_keybind = \"\u003cleader\u003ens\",\n            show_size = true,\n\t    prefix = \"✗\",\n        })\n    end,\n}\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e💤 Lazy.nvim 💤\u003c/b\u003e\u003c/summary\u003e\n\n``` lua\n{\n\t\"MrSloth-dev/42-NorminetteNvim\",\n\tdependencies = { \"nvim-lua/plenary.nvim\" , \"echasnovski/mini.icons\"},\n\tconfig = function()\n\t\trequire(\"norminette\").setup({\n\t\t\tnorm_keybind = \"\u003cleader\u003en\",\n\t\t\tsize_keybind = \"\u003cleader\u003ens\",\n\t\t\tshow_size = true,\n                        prefix = \"✗\",\n\t\t})\n\tend,\n},\n```\n\u003c/details\u003e\n\n## Dependecies\n\n- [Neovim \u003e= 0.10](https://neovim.io/)\n- [Norminette (doh)](https://github.com/42School/norminette)\n- [flake8 ](https://flake8.pycqa.org/en/latest/) for python projects.\n- [Plenary.nvim](https://github.com/nvim-lua/plenary.nvim) for async.\n- [mini.icons](https://github.com/echasnovski/mini.icons) for toggle icon.\n\n## Usage\n\nYou can activate the toggle for Norm Errors in two ways : `:NorminetteToggle` or using the `\u003cleader\u003en`, notice that you can change the keybind to your liking.\n\nAlong with the Norm you can also check function sizes with `:NorminetteSizeToggle` using the `\u003cleader\u003ens`. (Only avaiable for C projects)\n\nBy default the plugin is running on a asynchronous process to prevent slowdowns. But if you find the constant errors popping up or notice a slowdown, try to disable it.\n\n### Tip\nTo open a split with the quickfix list you can use a functionality of neovim and assign it to a keybind like\n```\nvim.keymap.set(\"n\", \"\u003cleader\u003eq\", vim.diagnostic.setloclist, { desc = \"Open diagnostic [Q]uickfix list\" })\n```\nThis way you only need to press `\u003cleader\u003eq` and the split opens automatically.\n\u003cbr\u003e\n\n## Known Issues\n\n- This plugin isn't working on 42's PCs through the flatpak.\n\nTo report a bug or ask for a feature, please open a [Github issue](https://github.com/MrSloth-dev/42-NorminetteNvim/issues/new)\n\u003cbr\u003e\n\n## Roadmap\n\n- [x] Detect functions through tree-sitter\n- [x] Improve performance\n- [x] Add Python (using flake8) projects support\n- [ ] Auto-formatter for some of the errors.\n\n## Changelog\nAll notable changes to this project will be documented in this file.\n\n### [0.7] - 2025-05-09\n\n#### Added\n- Added support Python projects using `flake8`, the plugin that detect which filetype is and change the parsing accordingly.\n- Now you can change your prefix (default is `●`)\n\n#### Changed\n- Startup check only at toggle to prevent errors from appearing while working with files unrelated to 42.\n\n### [0.6.1] - 2024-12-08\n\n#### BugFix\n- There was an issue when changing buffers in splits and needed reactivation.\n\n### [0.6] - 2024-11-09\n\n#### Added\n- Now you can toggle Function Sizes with `:NorminetteSizeToggle` or keybind (default `\u003cleader\u003ens`)\n\n#### Changed\n- Showing Function size doesn't not depend if the Norminette diagnostics are turned on\n- Turned Norminette and Function Sizes into two separate Toggles so that you can choose which you want to turn on and off.\n- User Command `:Norminette` changed to `:NorminetteToggle`\n\n#### BugFix\n- There was an issue when Calling `:Norminette` that was calling a deprecated function\n\n### [0.5.1] - 2024-09-30\n\n#### BugFix\n- Remade the function to calculate size, instead of Regex, now it uses [Neovim's TreeSitter](https://tree-sitter.github.io/tree-sitter/)\n- Plugin wasn't showing the errors when activated, as pretended.\n\n### [0.5] - 2024-09-25\n\n#### Added\n- Now it can show Function size as messages\n- An icon in right side of status bar to know if the plugin is activated or not. May not work with other status line other than the default, if requested, I'll make it work.\n\n#### Changed\n- To reduce the workload the event that activated the functions were altered from \"CursorHold\" to \"{ \"TextChanged\", \"TextChangedI\" }\", so the diagnostics update when it detect changes is text.\n\n#### BugFix\n- There was an error when the plugin was called through `:Norminette` that was calling an old function.\n\n### [0.4] - 2024-09-19\n\n#### Changed\n- Reworked the way that the plugin works, now it's a toggle that you can turn on and [off](https://www.youtube.com/watch?v=p85xwZ_OLX0).\n- Changed the bullet point in errors.\n\n#### Added\n- Symbol  in statusline to see if the toggle is on or off.\n- Added diagnostic_color, not working (yet).\n\n### [0.3] - 2024-09-07\n  \n - #### Added\nIn this version I added asynchronous task for the norminette so there won't be a slowdown\n \n#### Fixed\n - On the previous version the toggle wasn't working properly because it wasn't clearning the diagnostics after running the command.\n\nStill doesn't Work in 42 yet.\n\n### [0.2] - 2024-09-06\n  \nIn this version I added asynchronous task for the norminette so there won't be a slowdown\n \n#### Changed\n- Added [Plenary](https://github.com/nvim-lua/plenary.nvim) for async task for norminette. \n\n### [0.1] - 2024-08-28\n \n### Added\n   \n- This is the first Version, it's working outside the 42's Computers.\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrsloth-dev%2F42-norminettenvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrsloth-dev%2F42-norminettenvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrsloth-dev%2F42-norminettenvim/lists"}