Updating index to be more friendly and informational
This commit is contained in:
+53
-10
@@ -1,13 +1,56 @@
|
|||||||
# Welcome to Polydev
|
# 🚀 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 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:
|
|
||||||
|
|
||||||
* Creating New Projects
|
## ❓ What is Polydev?
|
||||||
* Creating New Files
|
|
||||||
* Building Files
|
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.
|
||||||
* Running Files
|
|
||||||
* Builtin Terminal
|
## 💡 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.
|
||||||
|
|
||||||
|
---
|
||||||
|
|||||||
+18
-11
@@ -7,26 +7,33 @@
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
require {
|
return {
|
||||||
"DarthMooMancer/Polydev",
|
"DarthMooMancer/Polydev",
|
||||||
config = function()
|
opts = {
|
||||||
require("Polydev").setup()
|
<language> = {
|
||||||
--require("Polydev").language.setup({
|
...
|
||||||
-- configs
|
},
|
||||||
--})
|
terminal = {
|
||||||
end
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Mini.Deps
|
## Mini.Deps
|
||||||
------------
|
------------
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
MiniDeps.add({
|
MiniDeps.add({
|
||||||
source = 'DarthMooMancer/Polydev',
|
source = 'DarthMooMancer/Polydev',
|
||||||
})
|
})
|
||||||
|
|
||||||
require("Polydev").setup()
|
require("Polydev").setup({
|
||||||
--require("Polydev").language.setup({
|
<language> = {
|
||||||
-- configs
|
...
|
||||||
--})
|
},
|
||||||
|
terminal = {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
})
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user