{"id":13413007,"url":"https://github.com/Abstract-IDE/penvim","last_synced_at":"2025-03-14T19:30:53.481Z","repository":{"id":42515578,"uuid":"478070807","full_name":"Abstract-IDE/penvim","owner":"Abstract-IDE","description":"Project's root directory and documents Indentation detector with project based config loader","archived":false,"fork":false,"pushed_at":"2022-07-23T09:12:33.000Z","size":33,"stargazers_count":50,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-23T00:14:31.170Z","etag":null,"topics":["indent","lua-plugin","neovim","neovim-plugin","rooter"],"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/Abstract-IDE.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":"2022-04-05T10:04:42.000Z","updated_at":"2024-04-28T20:31:57.000Z","dependencies_parsed_at":"2022-07-15T17:30:33.157Z","dependency_job_id":null,"html_url":"https://github.com/Abstract-IDE/penvim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abstract-IDE%2Fpenvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abstract-IDE%2Fpenvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abstract-IDE%2Fpenvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abstract-IDE%2Fpenvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Abstract-IDE","download_url":"https://codeload.github.com/Abstract-IDE/penvim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221495322,"owners_count":16832459,"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":["indent","lua-plugin","neovim","neovim-plugin","rooter"],"created_at":"2024-07-30T20:01:32.251Z","updated_at":"2024-10-26T04:31:33.812Z","avatar_url":"https://github.com/Abstract-IDE.png","language":"Lua","funding_links":[],"categories":["Formatting","Lua","Project"],"sub_categories":["Indent","Assembly"],"readme":"\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003ch3 align=\"center\"\u003ePenVim\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    project's root directory and documents indentation detector with project based config loader\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\n\u003cdiv align=\"center\" \u003e\n\n  \u003ca href=\"https://github.com/shaeinst/penvim/\"\u003eDocs\u003c/a\u003e\n  \u003ca href=\"https://github.com/shaeinst/penvim/issues\"\u003eRequest-Feature/Issues\u003c/a\u003e\n  \u003c/br\u003e\n  ![Contributors](https://img.shields.io/github/contributors/shaeinst/penvim?color=dark-green) ![Issues](https://img.shields.io/github/issues/shaeinst/penvim) ![License](https://img.shields.io/github/license/shaeinst/penvim) ![Forks](https://img.shields.io/github/forks/shaeinst/penvim?style=social) ![Stargazers](https://img.shields.io/github/stars/shaeinst/penvim?style=social)\n\u003c/div\u003e\n\n\n\n\n## Table Of Contents\n\n* [About the Project](#about-the-project)\n* [Examples](#examples-)\n* [Getting Started](#getting-started)\n  * [Prerequisites](#prerequisites)\n  * [Installation](#installation)\n* [Setup](#setup)\n* [License](#license)\n* [Acknowledgements](#acknowledgements)\n\n\n## About The Project\n\nThis plugin (Penvim) has 4 purposes:\n1. change current working directory to project's root directory.\n2. detect indentation of Document (Source Code) and set indentation related config according to detected indentation\n3. load config defined in project's root directory\n4. set options according to Language's Standard Style Guide (not implemented yet...)\n\n\n## Getting Started\nInstall PenVim using your favorite package manager.\n\n\n### Prerequisites\n* neovim \u003e= 0.7\n\n\n### Installation\n\nusing ```vim-plug```\n```lua\nPlug 'Abstract-IDE/penvim'\n```\nor using packer.nvim\n```lua\nuse {'Abstract-IDE/penvim'}\n```\n\n\n## Setup\n\n```lua\nrequire(\"penvim\").setup() -- use defaults\n```\n#### Full Configuration\n```lua\nrequire(\"penvim\").setup({\n\trooter = {\n\t\tenable = true, -- enable/disable rooter\n\t\tpatterns = {'.__nvim__.lua', '.git', 'node_modules'}\n\t},\n\tindentor = {\n\t\tenable = true, -- enable/disable indentor\n\t\tindent_length = 4, -- tab indent width\n\t\taccuracy = 5, -- positive integer. higher the number, the more accurate result (but affects the startup time)\n\t\tdisable_types = {\n\t\t\t'help','dashboard','dashpreview','NvimTree','vista','sagahover', 'terminal',\n\t\t},\n\t},\n\tproject_env = {\n\t\tenable = true, -- enable/disable project_env\n\t\tconfig_name = '.__nvim__.lua' -- config file name\n\t},\n})\n```\n\n\n## Examples :\n\u003cdetails\u003e\n\t\u003csummary\u003e\n\t\tsample, config defined in project's root directory\n\t\u003c/summary\u003e\n\n```lua\n-- .__nvim__.lua\nreturn {\n\t-- for all file types\n\tall = {\n\t\ttabstop = 4, -- spaces per tab\n\t\tcursorline = true, -- highlight current line\n\t\trelativenumber = true, -- show relative line number\n\t\tnumber = true, -- show line numbers\n\t},\n\n\t-- for filetype lua\n\tlua = {\t\n\t\tsmarttab = true, -- \u003ctab\u003e/\u003cBS\u003e indent/dedent in leading whitespace\n\t\tsofttabstop = 4,\n\t\tshiftwidth = 4, -- spaces per tab (when shifting), when using the \u003e\u003e or \u003c\u003c commands, shift lines by 4 spaces\n\t},\n\t\n\t-- for filetype python and javascript\n\tpy_js = {\n\t\ttabstop = 4, -- spaces per tab\n\t\twrap = false, -- don't automatically wrap on load\n\t}\n}\n```\n\u003c/details\u003e\n\n\n## To-Do\n* testing\n* implement to set option according to Language's Standard Style Guide\n* optimize code\n\n\n## License\nDistributed under the MIT License. See [LICENSE](https://github.com/shaeinst/penvim/blob/main/LICENSE) for more information.\n\n\n## Acknowledgements\n* for [README](https://readme.shaankhan.dev/)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbstract-IDE%2Fpenvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAbstract-IDE%2Fpenvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbstract-IDE%2Fpenvim/lists"}