Giter Club home page Giter Club logo

intellij-discord-rp's Introduction

logo

intellij-discord-rp

Version Rating Downloads GitHub License

A highly customizable IntelliJ plugin that adds stylish Rich Presence support to enhance your Discord status.

โœจ Features

  • Display your work in Discord!
  • Customize with variables
  • Change display mode per project (or hide the project)
  • Support for more than 20 languages (with more to come)
  • Support for all JetBrains IDEs
  • Use custom Discord application id

๐Ÿ‘€ Showcase

showcase

โญ Star history

Star History Chart

๐Ÿ’ญ The motivation

But wait, aren't there a lot of Discord integration plugins already? So why create another one?

Well, here's the thing: the existing plugins that offer Rich Presence support have either been left unmaintained or don't provide a good enough experience that I was happy with. That's why I decided to make this plugin, which gives the user the freedom to customize almost everything while ensuring a premium and polished feel.

๐Ÿ“ฅ Installation

The recommended way to install this plugin is through the JetBrains Marketplace, but there are alternative ways. You can also download a distribution of the plugin in the release page or a build available under every commit through GitHub actions (these builds aren't signed).

โš™๏ธ Settings

The settings menu can be opened in File -> Settings -> Discord Rich Presence, where you can customize your Rich Presence. Settings are split into three display modes: Application, Project and File. The File display mode is shown when the user is editing a file. Otherwise, the Project mode is displayed. The Application display mode is only shown if configured either as default display mode, or changed in a project using Tools -> Discord Rich Presence -> Change Display Mode in Project.

Each display mode can be configured using the corresponding tab. Variables are used for showing information in text fields, here's a list of them:

Variable File mode Project mode Application mode Value
{app_name} โœ… โœ… โœ… Name of the IDE
{app_full_name} โœ… โœ… โœ… Name and edition of the IDE
{app_version} โœ… โœ… โœ… Version of the IDE
{project_name} โœ… โœ… โŒ Name of the current project
{file_name} โœ… โŒ โŒ Name of the edited file
{file_path} โœ… โŒ โŒ Path to the edited file
{file_type} โœ… โŒ โŒ The determined type of the edited file
{file_dir_name} โœ… โŒ โŒ Name of the directory the edited file is in

โ“ Requesting a new language

Do you want support for a language that you like? Create a new Icon request issue in the issue tracker!

๐Ÿ“œ License

This project is licensed under the MIT License.

intellij-discord-rp's People

Contributors

pandier avatar cleboost avatar

Stargazers

 avatar Seungyeop Lee avatar Red_S2 avatar Abdulrhman Adel avatar Daniel Shao avatar Kenny avatar Kamela avatar Radioactive Potato avatar Keine Secrets avatar  avatar Zach avatar  avatar  avatar  avatar Sharki avatar Yassine avatar  avatar vyfor avatar  avatar

Watchers

 avatar  avatar

intellij-discord-rp's Issues

IDE sometimes lags on settings apply

The IDE sometimes has a lag spike when the settings are applied, caused by reconnecting to the Discord client.

Potentially fixed by #18

Environment

  • IDE with version: any
  • Plugin version: 1.0.1

Language support for dart

  • Language: Dart
    dart
    I've created an icon for darts. Can I add support for darts? Also, could you please add android studio?

Emoji support

What's missing?

Allow the usage of emoji in status

image
image

File size variable

What's missing?

A {file_size} variable that displays the size of the edited file. The formatting of the output is yet to be discussed.

This feature was requested by #40, but it was too complicated to implement it.
I will keep this issue open for future implementation.

File line count variable

What's missing?

A variable containing the line number of the currently open file ({file_lines_count})

Rich Presence doesn't show up on macOS

What happened?

You've been coding hard, but it's not showing up in my discord profile.

Expected behaviour

No response

What version of the plugin are you using?

1.2.0

What IDE and version are you using?

PyCharm Professional Edition 2024.1.1, Android Studio Jellyfish 2023.3.1

Per project display mode hierarchy

The user can choose what display mode can be shown when editing in a project. The actual display mode will always be above or equal to the chosen display mode in the hierarchy.

Display mode hierarchy

  • Application (#20)
  • Project
  • File

Example

The user will choose that in the current project, the "worst" display mode will be Project. When the user starts editing a file, the actual display mode will still be Project, because it's higher than File display mode in the hierarchy.

Support for remaining JetBrains IDEs

Add icons and Discord applications for remaining JetBrains IDEs.

  • AI - Android Studio
  • OC - AppCode
  • QA - Aqua
  • DB - DataGrip
  • DS - DataSpell
  • MPS - MPS
  • RM - RubyMine
  • RR - RustRover
  • GW - JetBrains Gateway
  • WRS - Writerside

Change Discord IPC library

The library, that is currently used by the plugin, isn't very good. A custom implementation of the Discord IPC protocol would be beneficial for error handling and logging.

Update activity periodically

Regularly update the activity status (the amount of time can be configured) to ensure accurate Rich Presence display.

This can cause some performance impacts and is probably not generally needed as long as all encessary events are handled.

I want to add text field variables.

Replace this with a clear and concise description of the feature that you are requesting. If the feature is related to a problem, also describe the problem.

I want to add text field variables.

{app_version}: Version of the IDE
{app_edition}: Edition of the IDE
{module_name} or {directory_name}: Name of the current module(directory)
{file_size}: Size of the current file

Action for disconnecting or hiding rich presence

Currently, the only way to hide the rich presence globally is either to disable it in a project or disable the plugin completely. A disconnect from Discord or hide presence action would be welcome.

Disable timer checkbox

What's missing?

Add a check box to enable or disable the discord timer (activity timer)

image

Privacy mode

Add a privacy mode, that replaces variables with arbitiary values. (For example, it replaces {file_name} with a file)

Large image setting in Project display mode disables itself

When disabling the large image setting in Project display mode, the checkbox gets disabled instead of the large image data.

Expected behaviour

The large image data components will be disabled.

Actual outcome

The large image checkbox gets disabled.

Environment

  • IDE with version: any
  • Plugin version: 1.0.0

Add more icons

Application:

  • PyCharm
  • WebStorm
  • PhpStorm
  • CLion
  • GoLand
  • Rider

File:

  • Python
  • JSON
  • TOML
  • YAML
  • XML
  • Markdown
  • PHP
  • C
  • C++
  • C#
  • Go
  • HTML
  • CSS
  • Gradle
  • Groovy

Better menu access

What's missing?

Move the page to a menu below Advanced to avoid having to go to submenus and be more visible.

image

Change the C# file icon please

please change the C# icon to this one with purple color
net-framework-c-net-core-software-framework-mono-studio-thumbnail

If this is not possible, please change the current one to dark purple instead of green.

Focus change listener not disposed

When closing the IDE, an "Memory leak detected" error is thrown.

Memory leak detected: 'io.github.pandier.intellijdiscordrp.DiscordRichPresencePlugin$$Lambda$3078/0x000000010133d778@3cf67040' of class io.github.pandier.intellijdiscordrp.DiscordRichPresencePlugin$$Lambda$3078/0x000000010133d778 is registered in Disposer but wasn't disposed.
Register it with a proper parentDisposable or ensure that it's always disposed by direct Disposer.dispose call.
See https://jetbrains.org/intellij/sdk/docs/basics/disposers.html for more details.

Environment

  • IDE with version: IntelliJ IDEA Community Edition 2023.3.4
  • Plugin version: 1.0.1

Activity not updated after reconnecting

Only related to the develop branch.

The activity is not updated after reconnecting (with the action or when applying settings). That means the Rich Presence doesn't show until update is executed (with, for example, opening a new file).

Expected behaviour

The activity will be updated and shown instantly after reconnecting.

Environment

  • IDE with version: any
  • Plugin version: development

Audio, image, compressed file support

When using JetBrains IDE to open audio and image compressed files, this plugin cannot show these files in Discord. Support for such files is necessary. I request that the plugin be updated to support recognizing file extensions such as .ogg, .aac, .mp3 as audio files, and .svg, .png as image files, as well as .zip, .7z as compressed files.

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.