Giter Site home page Giter Site logo

josephabbey / catppuccin-jetbrains Goto Github PK

View Code? Open in Web Editor NEW

This project forked from catppuccin/jetbrains

1.0 0.0 0.0 6.28 MB

🧠 Soothing pastel theme for JetBrains IDEs

Home Page: https://plugins.jetbrains.com/plugin/18682

License: MIT License

TypeScript 100.00%

catppuccin-jetbrains's Introduction

Logo
Catppuccin for JetBrains IDEs

Previews

🌻 Latte
🪴 Frappé
🌺 Macchiato
🌿 Mocha

Installation

  • Using IDE built-in plugin system:

Settings/Preferences > Plugins > Marketplace > Search for "Catppuccin Theme" > Install Plugin

  • Manually:

    Download the latest release and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...

Contributing

First, thank you for wanting to contribute! Make sure to read the organisation-wide CONTRIBUTING.md!

Listed below are details on the file structure, optimal development workflow and general notes that are useful for developing on this port.

Note
Please ensure that you have read the relevant JetBrains documentation listed here which will answer any questions surrounding creating, running and deploying a JetBrains theme.

File Structure

  • .github/workflows/ - CI/CD workflows for building and distributing .jar files
  • .run/ - Collection of useful Intellij run configuration tasks that ease the development process
  • generateFlavours/ - JS/TS code that generates all 4 Catppuccin flavours into the specified XML format that JetBrains require
    • main.ts - Generates .theme.json and .xml files. The .theme.json file relates to the UI elements whereas the .xml file (derived solely from the .template.xml) is for the Editor elements entirely (e.g the code syntax highlighting)
    • template.xml - As mentioned above, these are all the highlights for everything to do regarding the editor. It is important to note that we have included some handlebars syntax to allow for easier generation of the Latte flavour compared to Frappé, Macchiato and Mocha
  • src/main/resources/META-INF - Contains metadata that is shipped with the .jar including the Catppuccin logo, id, name, and description
  • build.gradle.kts - Standard gradle build file defining custom build tasks on top of defaults
  • gradle.properties - Properties that define the theme. For example, this includes the name, supported version(s) and type of IDE to build locally for testing, etc
  • settings.gradle.kts - Contains the root project name

Development Workflow

Requirements

Debugging Tools

JetBrains (thankfully) provide internal debugging tools to aid with theme creation in their IDE's. Please refer to the documentation below:

IDE Build Configuration

Note
The configuration in the given screenshots below contain hardcoded paths based on my personal system. Please ensure that you tweak your configurations to make sense within the context of your own system setup

~ Hammy

You should also ensure that the Generate All Flavours.run.xml configuration has been correctly identified by your JetBrains IDE of choosing.

For reference, your Generate All Flavours build configuration should look like the following:

deno-configuration.png

The build configurations for Build Plugin and Run Plugin should also include Generate All Flavours as pre-launch tasks. (This is to ensure that the latest changes are included with each local build of the theme.) For reference, they should look like the following:

Build Plugin img.png

Run Plugin img.png

Example Scenario

Some high level steps are shown below in an example development workflow for editing Link (UI) & Selection (Editor) highlights

High Level
  1. Edit Link highlight colour within main.ts
  2. Edit Selection highlight colour within template.xml
  3. Run Build Plugin build configuration (there should be updated files in src/main/resources/themes and the resulting .jar file should be under build/libs)
  4. Run Run Plugin build configuration (the result should be an entire IDE with the new changes applied)
  5. Observe new highlights within the test IDE instance
  6. If you aren't happy with your changes, repeat from step 2
  7. Once happy, update CHANGELOG.md with new updates to the theme under relevant headings
  8. Push changes to new remote branch
  9. Create pull request
  10. ???
  11. Profit

CI/CD Pipeline

To ease the development and deployment process, we have defined a full CI/CD pipeline that is capable of producing test .jar binaries on each relevant push, releasing draft binaries to GitHub and deploying straight to the JetBrains Marketplace.

  • build.yml - Runs on every relevant push/pull-request, it builds the .jar and uploads it for anyone to download it
  • publish.yml - Runs on every git tag starting with v*
    • Patches the CHANGELOG.md into the .jar for updated release notes
    • Builds the .jar
    • Publishes to the JetBrains Marketplace
    • Creates a draft release on GitHub for maintainers with the new .jar to manually review and release

💝 Thanks to

 

Copyright © 2022-present Catppuccin Org

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.