From e7b15f75aaad1d242b919f0aafe55bdc9c8ae71c Mon Sep 17 00:00:00 2001 From: Evgeny Kropotin Date: Wed, 27 Aug 2025 12:53:32 -0700 Subject: [PATCH 1/2] doc: add link to jetbrains extension --- README.md | 10 ++++---- crates/quickmark-server/src/main.rs | 34 ++++++++++++++++++++------- pkg/homebrew/Formula/quickmark-cli.rb | 2 +- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 756f5c9..ffde7eb 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ brew install quickmark-cli ##### Option 2 - from crates ```shell -cargo install quickmark-cli --version 1.0.0-beta.2 +cargo install quickmark-cli ``` ##### Option 3 - download from the release page @@ -163,7 +163,7 @@ Install the extension from the [VSCode marketplace](https://marketplace.visualst Install via cargo: ```bash -cargo install quickmark-server --version 1.0.0-beta.2 +cargo install quickmark-server ``` Or download the binary for your platform from the latest [release page](https://github.com/ekropotin/quickmark/releases) @@ -189,9 +189,11 @@ end lspconfig.quickmark.setup({}) ``` -#### IntelliJ IDEA +#### Jetbrains IDEs -WIP +Install from the [Marketplace](https://plugins.jetbrains.com/plugin/28305-quickmark/) + +**Note**: Only paid versions of IDEs are supported (like Idea Ultimate) at the moment. This may change in the future. ### Configuration diff --git a/crates/quickmark-server/src/main.rs b/crates/quickmark-server/src/main.rs index 48a0707..7adebe8 100644 --- a/crates/quickmark-server/src/main.rs +++ b/crates/quickmark-server/src/main.rs @@ -209,20 +209,28 @@ impl LanguageServer for Backend { } async fn did_open(&self, params: DidOpenTextDocumentParams) { - eprintln!("[QUICKMARK] did_open: {} (len: {})", params.text_document.uri, params.text_document.text.len()); + eprintln!( + "[QUICKMARK] did_open: {} (len: {})", + params.text_document.uri, + params.text_document.text.len() + ); self.publish_diagnostics(params.text_document.uri, ¶ms.text_document.text) .await; } async fn did_change(&self, params: DidChangeTextDocumentParams) { - eprintln!("[QUICKMARK] did_change: {} ({} changes)", params.text_document.uri, params.content_changes.len()); + eprintln!( + "[QUICKMARK] did_change: {} ({} changes)", + params.text_document.uri, + params.content_changes.len() + ); //do nothing on changes, only lint on save } async fn did_save(&self, params: DidSaveTextDocumentParams) { eprintln!("[QUICKMARK] did_save: {}", params.text_document.uri); eprintln!("[QUICKMARK] text provided: {}", params.text.is_some()); - + let content = if let Some(text) = params.text { eprintln!("[QUICKMARK] using provided text (len: {})", text.len()); // Use text content provided by the LSP client @@ -236,7 +244,10 @@ impl LanguageServer for Backend { eprintln!("[QUICKMARK] reading file: {:?}", path); match std::fs::read_to_string(&path) { Ok(content) => { - eprintln!("[QUICKMARK] successfully read {} chars from disk", content.len()); + eprintln!( + "[QUICKMARK] successfully read {} chars from disk", + content.len() + ); content } Err(err) => { @@ -244,16 +255,23 @@ impl LanguageServer for Backend { return; } } - }, + } Err(_) => { - eprintln!("[QUICKMARK] invalid file path: {}", params.text_document.uri); + eprintln!( + "[QUICKMARK] invalid file path: {}", + params.text_document.uri + ); return; } } }; - eprintln!("[QUICKMARK] publishing diagnostics for {} chars", content.len()); - self.publish_diagnostics(params.text_document.uri, &content).await; + eprintln!( + "[QUICKMARK] publishing diagnostics for {} chars", + content.len() + ); + self.publish_diagnostics(params.text_document.uri, &content) + .await; eprintln!("[QUICKMARK] diagnostics published"); } diff --git a/pkg/homebrew/Formula/quickmark-cli.rb b/pkg/homebrew/Formula/quickmark-cli.rb index 31aa7e7..f594796 100644 --- a/pkg/homebrew/Formula/quickmark-cli.rb +++ b/pkg/homebrew/Formula/quickmark-cli.rb @@ -2,7 +2,7 @@ class QuickmarkCli < Formula desc "Lightning-fast Markdown/CommonMark linter CLI tool with tree-sitter based parsing" homepage "https://github.com/ekropotin/quickmark" license "MIT" - version "1.0.0-alpha.1" + version "1.0.0" on_macos do if Hardware::CPU.intel? From 7a8f8c4d1ec6ff514786c137fc2f5fd56e6d131e Mon Sep 17 00:00:00 2001 From: Evgeny Kropotin Date: Thu, 28 Aug 2025 11:17:14 -0700 Subject: [PATCH 2/2] doc: add shield icons for extensions --- .gitignore | 1 + README.md | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 5ec2eb7..174c6a3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ # Ignore local Claude Code settings .claude/settings.local.json CLAUDE.local.md +.idea diff --git a/README.md b/README.md index ffde7eb..291f240 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,14 @@ # QuickMark [![image](https://img.shields.io/badge/license-MIT-blue)](https://github.com/ekropotin/quickmark/blob/main/LICENSE) + [![quickmark-core](https://img.shields.io/crates/v/quickmark-core?label=quickmark-core)](https://crates.io/crates/quickmark-core) [![quickmark-cli](https://img.shields.io/crates/v/quickmark-cli?label=quickmark-cli)](https://crates.io/crates/quickmark-cli) [![quickmark-server](https://img.shields.io/crates/v/quickmark-server?label=quickmark-server)](https://crates.io/crates/quickmark-server) +[![VSCode Extension](https://img.shields.io/visual-studio-marketplace/v/ekropotin.vscode-quickmark?label=VSCode%20Extension)](https://marketplace.visualstudio.com/items?itemName=ekropotin.vscode-quickmark) +[![JetBrains Extension](https://img.shields.io/jetbrains/plugin/v/28305-quickmark?label=JetBrains%20Extension)](https://plugins.jetbrains.com/plugin/28305-quickmark) + Quickmark is a Markdown/[CommonMark](https://commonmark.org/) linter written in Rust with first-class LSP support, giving you fast, seamless feedback in any editor. QuickMark is not just another Markdown linter; it's a tool designed with the modern developer in mind. By prioritizing speed and integrating seamlessly with your development environment, QuickMark enhances your productivity and makes Markdown linting an effortless part of your workflow.