This commit is contained in:
DarthMooMancer
2025-12-01 01:08:04 -05:00
parent faf87f3643
commit 053c567618
6 changed files with 0 additions and 472 deletions
-5
View File
@@ -1,5 +0,0 @@
| Group | Default | Description |
|------|-------|--------|
| `PolydevNormal` | `NormalFloat` | Base background of window |
| `PolydevBorder` | `Function` | Border of window |
| `PolydevTitle` | `FloatTitle` | Title of each popup |
-70
View File
@@ -1,70 +0,0 @@
<p align="center"><em>A multi-language project managing plugin for file creation, building, and running code—all within neovim. Whether you're coding in Java, Python, Lua, Rust, or more, Polydev provides seamless integration to boost your productivity inside Neovim.</em></p>
<p align="center">
<img src="https://img.shields.io/badge/Lua-1e90ff?style=for-the-badge&logo=lua&logoColor=white" />
<img src="https://img.shields.io/badge/Neovim-0.10%2B-32c48d?style=for-the-badge&logo=neovim&logoColor=white" />
<img src="https://img.shields.io/github/stars/DarthMooMancer/Polydev?style=for-the-badge&logo=github" />
<img src="https://img.shields.io/badge/License-Apache-yellow.svg?style=for-the-badge" />
</p>
<p align="center">
<img src="https://github.com/user-attachments/assets/c8e84056-5080-4ec3-ba15-30be61faaf68" alt="Polydev Preview" width="720"/>
</p>
## **Why Polydev**?
Working across multiple languages often means repetitive setup and constant context switching. Polydev eliminates this friction by offering:
* Project templates per language
* Custom keybindings for essential actions
* Floating terminal integration
* Automated file and folder generation
* A plugin-first design for easy extensibility
## **Core Features**
* **Language Profiles**
Define settings per language including `project_root`, keymaps, and build commands.
* **Floating Terminals**
Run build, and run commands in a clean, isolated terminal window inside Neovim.
* **Scaffolding**
Quickly generate boilerplate and structured directories for new projects.
* **Custom Keybinds**
Map actions like `Run`, `PipInstall`, `Open Manager`, `etc` to your preferred keys.
* **Pluggable Design**
Easily extend functionality with custom language presets and commands.
## **Who It's For**
* Developers who work in multiple languages
* Neovim plugin authors or power users
* Anyone who wants a faster, more unified project workflow
## **Design Goals**
* **Consistency**
Offer a predictable workflow across languages and tools.
* **Extensibility**
Support custom configurations, commands, and language integrations.
* **Simplicity**
Reduce boilerplate, context switching, and friction.
## **Real-World Example**
If you switch often between Rust, Lua, and Python:
1. Polydev sets up your project layout automatically.
2. Creates boilerplate like `main.rs`, `init.lua`, or `main.py`.
3. Maps commands to keys (e.g. `<leader>pr` to run, `<leader>po` to open the manager).
4. Opens a floating terminal with build or run output — no extra configuration required.
-43
View File
@@ -1,43 +0,0 @@
## **Lazy.nvim**
```lua
return {
"DarthMooMancer/Polydev",
dependencies = {
"MunifTanjim/nui.nvim"
},
opts = {}, -- Setup is later on
}
```
---
## **Mini.deps**
```lua
MiniDeps.add({
source = "DarthMooMancer/Polydev"
depends = {
"MunifTanjim/nui.nvim"
}
})
require("Polydev").setup({})
```
---
## **Packer.nvim**
```lua
use({
"DarthMooMancer/Polydev",
requires = {
"MunifTanjim/nui.nvim"
},
})
require("Polydev").setup({})
```
---
-160
View File
@@ -1,160 +0,0 @@
## Java
#### Structure Reference
| Directory/File Path | Description |
|----------------------------|------------------------------------------------------|
| `src/` | Contains the source code files, including `Main.java` |
| `build/` | Contains compiled `.class` files |
| `Main.java` | The main entry point of your Java project |
| `.gitingore` | Ignores files for things like Telescope and pushing to github |
#### Project Layout
```md
Projects/
└── Java/
└── Project_Name/
├── src/
│ └── Main.java
├── build/
│ └── *.class
└── .gitingore
```
---
## C
#### Structure Reference
| Directory/File Path | Description |
|----------------------------|------------------------------------------------------|
| `CMakeLists.txt` | Configuration file for your project build |
| `src/` | Folder containing source files for the project |
| `main.c` | Main C file for the project |
| `*.c` | Additional C source files |
| `build/` | Folder where the build artifacts will be generated |
| `include/` | Folder for header files |
| `*.h` | C header files |
| `.gitingore` | Ignores files for things like Telescope and pushing to github |
#### Project Layout
```md
Projects/
└── C/
└── Project_Name/
├── CMakeLists.txt
├── src/
│ ├── main.c
│ └── *.c
├── .gitingore
├── build/
│ └── <CMAKE_FILES>
│ └── <main-executable>
└── include/
└── *.h
```
---
## C++
#### Structure Reference
| Directory/File Path | Description |
|----------------------------|------------------------------------------------------|
| `CMakeLists.txt` | Configuration file for your project build |
| `src/` | Folder containing source files for the project |
| `main.cpp` | Main Cpp file for the project |
| `*.cpp` | Additional Cpp source files |
| `build/` | Folder where the build artifacts will be generated |
| `include/` | Folder for header files |
| `*.hpp` | Cpp header files |
| `.gitingore` | Ignores files for things like Telescope and pushing to github |
#### Project Layout
```md
Projects/
└── Cpp/
└── Project_Name/
├── CMakeLists.txt
├── .gitingore
├── src/
│ ├── main.cpp
│ └── *.cpp
├── build/
│ └── <CMAKE_FILES>
│ └── <main-executable>
└── include/
└── *.hpp
```
---
## Lua
#### Structure Reference
| Directory/File Path | Description |
|----------------------------|-----------------------------------------------------|
| `lua/<Project_name>` | Directory containing the main Lua project files |
| `lua/<Project_name>/init.lua` | The main entry point for your Lua project |
| `.gitingore` | Ignores files for things like Telescope and pushing to github |
#### Project Layout
```md
Projects/
└── Lua/
└── Project_Name/
├── .gitingore
└── lua/
└── Project_name/
└── init.lua -- Main Lua file
```
---
## Python
- **Automatic Virtual Environment Creation**: Each Python project automatically sets up and uses a new virtual environment. You don’t need to worry about environment management. Just install your dependencies with `pip` as needed.
- **Dependency Management with Pip**: Need to install Python modules? Simply type the name of the module in the terminal, and Polydev will take care of the installation using `pip`. You can even update `pip` if required, ensuring smooth installation.
#### Structure Reference
| Directory/File Path | Description |
|----------------------------|------------------------------------------------------|
| `requirements.txt` | File for listing project dependencies |
| `setup.py` | Python project setup file |
| `tests/` | Folder containing test files |
| `venv/` | Virtual environment folder |
| `main.py` | Main Python file for your project |
| `.gitingore` | Ignores files for things like Telescope and pushing to github |
#### Project Layout
```md
Projects/
└── Python/
└── Project_Name/
├── .gitingore
├── main.py
├── requirements.txt
├── setup.py
├── tests/
└── venv/
```
---
## Html
Nothing here yet! Html is supported however! Will do later
## Rust
Nothing here yet! Rust is supported however! Will do later
-144
View File
@@ -1,144 +0,0 @@
## **Project Manager**
> Note: The project manager closely follows the netrw keybinds and allows for project management all in one spot
| Binding | Description |
|------------------|-----------------|
| **ENTER** | `Open file / Enter directory` |
| **DELETE** | `Go to parent directory` |
| **/** | `Filter (fuzzy search)` |
| **a** | `Create new folder` |
| **%** | `Create new file` |
| **x** | `Create new auxilary file (ex. headers)` |
| **d** | `Create new project` |
| **R** | `Rename file/folder` |
| **D** | `Delete file/folder` |
| **ESC** | `Quit popup` |
> **WARNING**: Do not copy the defaults. Only change what you need for your workflow!
## **Project Root**
```lua
-- Automatically creates a project root if not already made.
-- Stores all projects in this root
-- Global --
globals = {
project_root = "~/Projects"
}
-- Lua --
lua = {
project_root = "~/{global_root}/Lua"
}
-- Html --
html = {
project_root = "~/{global_root}/Html"
}
-- Rust --
rust = {
project_root = "~/{global_root}/Rust"
}
-- Java --
java = {
project_root = "~/{global_root}/Java"
}
-- Python --
python = {
project_root = "~/{global_root}/Python"
}
-- C --
c = {
project_root = "~/{global_root}/C"
}
-- C++ --
cpp = {
project_root = "~/{global_root}/CPP"
}
```
## **Keybinds**
```lua
-- globals --
globals = {
keybinds = {
["<leader>po"] = "PolydevManager",
}
}
-- rust --
rust = {
keybinds = {
["<leader>pr"] = "RustRun",
}
}
-- java --
java = {
keybinds = {
["<leader>pr"] = "JavaRun",
}
}
-- python --
python = {
keybinds = {
["<leader>pr"] = "PythonRun",
["<leader>pb"] = "PythonPip",
}
}
-- lua --
lua = {
keybinds = {
["<leader>pr"] = "LuaRun",
}
}
-- c --
c = {
keybinds = {
["<leader>pr"] = "CRun",
}
}
-- cpp --
cpp = {
keybinds = {
["<leader>pr"] = "CppRun",
}
}
```
## **Terminal Configuration**
```lua
terminal = {
-- floating or split
mode = "split",
win = {
-- type: "vertical" or "horizonal" -- Only for split windows
-- anchor: "bottom" or "right" or "center" or "corner"
-- "bottom" and "right" are only split anchors
-- "center" and "corner" are only floating anchors
type = "vertical", anchor = "right"
},
border = {
enabled = true,
-- type: border decoration, follows `winborder`
-- "bold": Bold line box.
-- "double": Double-line box.
-- "none": No border.
-- "rounded": Like "single", but with rounded corners ("╭" etc.).
-- "shadow": Drop shadow effect, by blending with the background.
-- "single": Single-line box.
-- "solid": Adds padding by a single whitespace cell.
type = "rounded"
}
}
```
-50
View File
@@ -1,50 +0,0 @@
site_name: Polydev
nav:
- Home: index.md
- Installation: installation.md
- Setup: setup.md
- Language Reference: languages.md
- Appearance: appearance.md
theme:
name: material
features:
- navigation.tabs
- navigation.sections
- toc.integrate
- navigation.top
- search.suggest
- search.highlight
- content.tabs.link
- content.code.annotation
- content.code.copy
language: en
palette:
- scheme: slate
primary: slate
accent: teal
extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/DarthMooMancer
markdown_extensions:
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- admonition
- pymdownx.arithmatex:
generic: true
- footnotes
- pymdownx.details
- pymdownx.superfences
- pymdownx.mark
- attr_list
- pymdownx.emoji:
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
copyright: |
&copy; 2025 <a href="https://github.com/DarthMooMancer" target="_blank" rel="noopener">DarthMooMancer</a>