Updating index to be more friendly and informational

This commit is contained in:
DarthMooMancer
2025-04-16 02:53:39 -04:00
parent a882c3b30e
commit 156f92cc31
2 changed files with 73 additions and 23 deletions
+53 -10
View File
@@ -1,13 +1,56 @@
# Welcome to Polydev
# 🚀 Welcome to Polydev
![Python-polydev-720](https://github.com/user-attachments/assets/08232673-01a4-4464-9e98-5a94227e98f9)
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 a simple plugin that gives neovim some nice functions while being extremely extensible for developers. It automatically detects your language and enables the module for that language. It is a standalone plugin that has no dependencies aside from getting file types. Below are a few features that are currently implemented:
![Polydev-c](https://github.com/user-attachments/assets/365dd673-6b1f-4ccc-ac1f-c5131d055fd9)
* Creating New Projects
* Creating New Files
* Building Files
* Running Files
* Builtin Terminal
## ❓ 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 `Build`, `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>pb` to `Build`, 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.
---
+20 -13
View File
@@ -7,26 +7,33 @@
----------
```lua
require {
"DarthMooMancer/Polydev",
config = function()
require("Polydev").setup()
--require("Polydev").language.setup({
-- configs
--})
end
return {
"DarthMooMancer/Polydev",
opts = {
<language> = {
...
},
terminal = {
...
}
}
}
```
## Mini.Deps
------------
```lua
MiniDeps.add({
source = 'DarthMooMancer/Polydev',
source = 'DarthMooMancer/Polydev',
})
require("Polydev").setup()
--require("Polydev").language.setup({
-- configs
--})
require("Polydev").setup({
<language> = {
...
},
terminal = {
...
}
})
```