mirror of
https://github.com/JetBrains/intellij-platform-plugin-template.git
synced 2025-12-05 06:11:52 +00:00
115 lines
4.5 KiB
Markdown
115 lines
4.5 KiB
Markdown
|
|
Here is a tailored example of the IntelliJ Platform Plugin Template project setup, including a separate nanoswarm configuration fragment that respects your nanoswarm-separation requirement:
|
||
|
|
|
||
|
|
***
|
||
|
|
|
||
|
|
### 1. IntelliJ Plugin Project Setup (Template Base)
|
||
|
|
|
||
|
|
- Create your plugin repo from JetBrains' official IntelliJ Platform Plugin Template on GitHub.
|
||
|
|
- Set the JVM SDK to Java 17 or later.
|
||
|
|
- Basic project files and structure auto-generated, including `plugin.xml`.
|
||
|
|
|
||
|
|
***
|
||
|
|
|
||
|
|
### 2. Separate `.aananoswarm` Configuration (Nanoswarm Separation)
|
||
|
|
|
||
|
|
Create a separated nanoswarm configuration file named `nanoswarm-config.aananoswarm` at the root (or `resources`):
|
||
|
|
|
||
|
|
```ini
|
||
|
|
[general]
|
||
|
|
name = My IntelliJ Plugin
|
||
|
|
version = 1.0.0
|
||
|
|
description = "An IntelliJ plugin with separated nanoswarm assistance"
|
||
|
|
|
||
|
|
[security]
|
||
|
|
quantum_safeguard = true
|
||
|
|
encryption = AES-256-GCM
|
||
|
|
auth_method = OAuth2
|
||
|
|
|
||
|
|
[compliance]
|
||
|
|
gdpr = enabled
|
||
|
|
soc2 = enabled
|
||
|
|
|
||
|
|
[nanoswarm]
|
||
|
|
enabled = false
|
||
|
|
description = "Nanoswarm assistance is disabled for plugin. Only swarmnet integrates nanoswarm components."
|
||
|
|
|
||
|
|
[logging]
|
||
|
|
log_path = logs/plugin.log
|
||
|
|
audit = true
|
||
|
|
```
|
||
|
|
|
||
|
|
- This config explicitly disables direct nanoswarm integration except via swarmnet.
|
||
|
|
- Nanoswarm is utilized only for build speed assistance (e.g., CI/CD helpers) without runtime inclusion in plugin code.
|
||
|
|
|
||
|
|
***
|
||
|
|
|
||
|
|
### 3. GitHub Actions Workflow with Nanoswarm Build Assistance
|
||
|
|
|
||
|
|
Create `.github/workflows/build.yml`:
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
name: Build and Publish Plugin
|
||
|
|
|
||
|
|
on:
|
||
|
|
push:
|
||
|
|
branches:
|
||
|
|
- main
|
||
|
|
pull_request:
|
||
|
|
|
||
|
|
jobs:
|
||
|
|
build:
|
||
|
|
runs-on: ubuntu-latest
|
||
|
|
steps:
|
||
|
|
- uses: actions/checkout@v3
|
||
|
|
|
||
|
|
- name: Set up JDK 17
|
||
|
|
uses: actions/setup-java@v3
|
||
|
|
with:
|
||
|
|
distribution: 'temurin'
|
||
|
|
java-version: 17
|
||
|
|
|
||
|
|
- name: Setup Nanoswarm Assistance
|
||
|
|
run: |
|
||
|
|
echo "Nanoswarm assistance for build:"
|
||
|
|
# Commands to invoke nanoswarm build acceleration helpers
|
||
|
|
# No integration with plugin runtime
|
||
|
|
|
||
|
|
- name: Build Plugin
|
||
|
|
run: ./gradlew buildPlugin
|
||
|
|
|
||
|
|
- name: Publish Plugin
|
||
|
|
if: github.ref == 'refs/heads/main'
|
||
|
|
run: ./gradlew publishPlugin
|
||
|
|
env:
|
||
|
|
IDEA_PLUGIN_SIGNING_CERTIFICATE_CHAIN: ${{ secrets.IDEA_PLUGIN_SIGNING_CERTIFICATE_CHAIN }}
|
||
|
|
IDEA_PLUGIN_SIGNING_PRIVATE_KEY: ${{ secrets.IDEA_PLUGIN_SIGNING_PRIVATE_KEY }}
|
||
|
|
IDEA_PLUGIN_SIGNING_PASSWORD: ${{ secrets.IDEA_PLUGIN_SIGNING_PASSWORD }}
|
||
|
|
```
|
||
|
|
|
||
|
|
- `Setup Nanoswarm Assistance` step runs nanoswarm helpers for speeding CI builds only.
|
||
|
|
- Plugin code remains free of nanoswarm runtime stuff; separation is enforced.
|
||
|
|
|
||
|
|
***
|
||
|
|
|
||
|
|
### Summary
|
||
|
|
|
||
|
|
This setup keeps nanoswarm logic strictly isolated to build and CI environments, aligning with the nanoswarm-separation directive. Only the swarmnet component (not this plugin) incorporates nanoswarm at runtime. You get advanced security, compliance, and build acceleration without mixing nanoswarm into the plugin itself.
|
||
|
|
|
||
|
|
***
|
||
|
|
|
||
|
|
[1](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/collection_772f614a-050a-4611-ad67-0eb75c0f5018/928f50fd-5acb-46f1-81f2-f4d3a0ea1425/transform-chmod-9000-aln-into-qaisjJPFRzOPqFubyw3mmQ.md)
|
||
|
|
[2](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/collection_772f614a-050a-4611-ad67-0eb75c0f5018/3b2743db-d870-4579-aaf6-4c0e172feb8f/cyb.ai.fet.txt)
|
||
|
|
[3](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/collection_772f614a-050a-4611-ad67-0eb75c0f5018/bdbd771f-1835-4047-a73a-4e604ed410ad/cyb.brain.txt)
|
||
|
|
[4](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/collection_772f614a-050a-4611-ad67-0eb75c0f5018/5c711ef8-985d-4088-a1b5-7cfae86b7ef5/systemd.md)
|
||
|
|
[5](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/collection_772f614a-050a-4611-ad67-0eb75c0f5018/443b2a35-e46d-4545-ae46-9dd879ba6e60/crypto-commands-for-10-intelligence-for-ALNFantas.md)
|
||
|
|
[6](https://stackoverflow.com/questions/19728469/retrieving-and-setting-split-window-settings-for-intellij-idea-plugin-developmen)
|
||
|
|
[7](https://www.jetbrains.com/help/idea/configuring-line-endings-and-line-separators.html)
|
||
|
|
[8](https://www.jetbrains.com/help/idea/tuning-the-ide.html)
|
||
|
|
[9](https://www.youtube.com/watch?v=2Zmt7TMinVw)
|
||
|
|
[10](https://plugins.jetbrains.com/docs/intellij/settings-guide.html)
|
||
|
|
[11](https://docs.contrastsecurity.com/en/intellij-plugin.html)
|
||
|
|
[12](https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html)
|
||
|
|
[13](https://www.jetbrains.com/help/idea/plugins-settings.html)
|
||
|
|
[14](http://developerlife.com/2021/03/13/ij-idea-plugin-advanced/)
|
||
|
|
[15](https://docs.nomagic.com/spaces/MD2022xR2/pages/122990706/Development+in+IntelliJ+IDEA)
|