# πŸš€ Welcome to Polydev Polydev is a highly customizable and extensible Neovim plugin aimed at streamlining project creation and management for multiple programming languages. It’s especially suited for developers who work across different languages and want a consistent workflow for initializing, building, and running projects. ![720p-Polydev](https://github.com/user-attachments/assets/4d14911b-4b03-4bb1-889e-c61cd2c342a1) ## ❓ What is Polydev? Polydev is designed to be a centralized workspace tool that reduces repetitive tasks involved in setting up development environments. Whether you’re working on a Lua plugin, a Rust CLI tool, or a C++ project, Polydev helps you scaffold project directories, create boilerplate code, and define keybinds to streamline execution β€” all from within Neovim. ## πŸ’‘ Why Polydev? Modern development often involves juggling multiple languages. Setting up similar environments repeatedly or manually running commands wastes time. Polydev solves this by providing: - πŸ“¦ **Project templates per language** - 🎯 **Custom keybindings for common actions** - πŸ’» **Floating terminal support** - πŸ—‚ **Easy file creation and directory structure generation** - πŸ”Œ **Plugin-first architecture to expand functionality** ## πŸ”§ Core Features - 🌐 **Language Support**: Define custom settings per language including `project_root`, `keybinds`, and `build_attributes`. - πŸͺŸ **Floating Terminals**: Run builds and executions in a Neovim floating terminal. - 🧱 **Scaffolding**: Automatically create the appropriate directory and file layout for new projects. - 🎹 **Keybind Mapping**: Rebind keys to execute project-specific commands like `Run`, or `Test`. - πŸ”Œ **Pluggable**: Designed to easily integrate with other tools or extend with your own commands and language presets. ## πŸ‘₯ Target Audience Polydev is perfect for: - πŸ§‘β€πŸ’» Developers building across multiple languages - πŸ”Œ Plugin authors and power users of Neovim - ⚑ Anyone who wants automated project bootstrapping ## 🎯 Goals - πŸ“ **Consistency**: Provide a common interface for all your dev projects. - 🧩 **Extensibility**: Let users add their own languages and tools. - ✨ **Simplicity**: Reduce boilerplate and context switching. ## πŸ§ͺ Example Use Case Say you're a developer who works with Rust, Lua, and Python. Instead of remembering build commands, directory structures, or manually creating a `main.rs` or `init.lua`, Polydev: 1. πŸ— Sets up your directory based on language conventions. 2. πŸ“„ Generates boilerplate files. 3. πŸŽ› Maps `pr` to `Run`, `po` to `Open Polydev Project Manager`, and so on. 4. πŸ–₯ Opens a floating terminal to show your output. ## 🏷 Versioning Polydev uses GitHub tags and branches to manage plugin versions. Each version corresponds to a stable release that users can track. ---