57 lines
2.8 KiB
Markdown
57 lines
2.8 KiB
Markdown
# 🚀 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.
|
||
|
||

|
||
|
||
## ❓ 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 `<leader>pr` to `Run`, `<leader>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.
|
||
|
||
---
|