First, thank you for wanting to contribute! Make sure to read the organisation-wide CONTRIBUTING.md first!
This document details the file structure, optimal development workflow and general notes that are useful for contributors.
Important
Please read the JetBrains theming documentation which will answer any questions surrounding creating, running and deploying a JetBrains theme.
.github/workflows/
- CI/CD workflows for building and distributing.jar
files.run/
- Collection of useful Intellij run configuration tasks that ease the development processgenerateFlavours/
- Typescript code that generates all 4 Catppuccin flavours into JetBrains format.editor.xml
- Highlights for everything contained within the editorui.theme.json
- Highlights for everything contained within the user interfacemain.ts
- Responsible for parsing theeditor.xml
andui.theme.json
and generating the themes insrc/main/resources/themes
.
src/main/resources/META-INF
- Contains metadata that is shipped with the built.jar
including the logo, id, name, and descriptionbuild.gradle.kts
- Standard gradle build file defining custom build tasksgradle.properties
- Properties that define the theme. E.g. name, supported version(s) and type of IDE to build locally for testing, etcsettings.gradle.kts
- Contains the root project name
- Deno v1.27+ with Deno plugin
JetBrains provide internal debugging tools to aid with theme creation. Please refer to the documentation below:
The .run
directory contains all the tasks required to generate the flavours, build the plugin and run the plugin.
However, these settings are not always imported correctly. I have included my personal configuration as a reference
point if you find that your tasks are not working properly.
Note
The configuration in the screenshots below contain hardcoded paths based on my personal system. Please tweak your configuration to suit your system setup.
~ Hammy
Here is an example workflow for changing the background from base to mantle:
- Change
primaryBackground
frombase
tomantle
- Run
Build Plugin
task (this will generate files undersrc/main/resources/themes
and the resulting.jar
file will be inbuild/libs
) - Run
Run Plugin
task (this will spawn a new IDE with your changes already applied) - Observe new highlights within the test IDE instance
- If you aren't happy with your changes, start over from step 1
- Once happy, update
CHANGELOG.md
with new updates to the theme under relevant headings - Push changes to a new branch on your fork
- Create pull request to the
main
branch on the main repository