feat(window): graphql window (#1166)

Adds a GraphQL tool window: schema discovery from graphql-config files (or every GraphQL file without one), schema errors and endpoints, running the operation at the caret against a configured endpoint with ${NAME} environment variables, Query Result, and introspection into the schema file. The editor gets a GraphQL toolbar with endpoint selection, variables and run.

The tool window is listed on the stripe once used, so projects without GraphQL get no extra button.

Closes #1168

Co-authored-by: kidp2h <[email protected]>
Цей коміт міститься в:
Nguyen Thinh authored and GitHub committed 2026-11-04 13:02:01 +08:00
1 джерело 8687f6b1e3
коміт 3d7768f47f
24 files changed
+3187 -2

No files matched your search

+4
Переглянути файл
@@ -183,6 +183,7 @@ const ICONS = {
"toolwindow-changes": "toolwindows/changes",
"toolwindow-database": "openidea/toolwindows/database",
"toolwindow-agents": "openidea/toolwindows/agents",
"toolwindow-graphql": "openidea/toolwindows/graphql",
// Coding agents (logos via Paseo)
"agent-claude": "openidea/agents/claude",
"agent-codex": "openidea/agents/codex",
@@ -223,6 +224,9 @@ const ICONS = {
filter: "general/filter",
refresh: "general/refresh",
settings: "general/settings",
help: "openidea/general/help",
sliders: "openidea/general/sliders",
"graphql-variables": "openidea/general/graphqlVariables",
layout: "general/layout",
split: "general/splitVertically",
"split-horizontal": "general/splitHorizontally",
+4
Переглянути файл
@@ -0,0 +1,4 @@
<!-- OpenIDEA: GraphQL variables editor toggle (V badge) -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1.5" y="1.5" width="13" height="13" rx="2" fill="#FFF4EB" stroke="#E66D17"/><path d="M5 4.5L8 11.5L11 4.5" stroke="#E66D17" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Після

Ширина:  |  Висота:  |  Розмір: 365 B

+4
Переглянути файл
@@ -0,0 +1,4 @@
<!-- OpenIDEA: GraphQL variables editor toggle (V badge) -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1.5" y="1.5" width="13" height="13" rx="2" fill="#45322B" stroke="#E08855"/><path d="M5 4.5L8 11.5L11 4.5" stroke="#E08855" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Після

Ширина:  |  Висота:  |  Розмір: 365 B

+4
Переглянути файл
@@ -0,0 +1,4 @@
<!-- OpenIDEA: Help (question mark) -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.5 6C5.5 4.62 6.62 3.5 8 3.5C9.38 3.5 10.5 4.62 10.5 6C10.5 7.1 9.79 7.6 9.1 8.08C8.5 8.5 8 8.85 8 9.75V10.25" stroke="#6C707E" stroke-linecap="round"/><circle cx="8" cy="12.5" r="0.75" fill="#6C707E"/>
</svg>

Після

Ширина:  |  Висота:  |  Розмір: 357 B

+4
Переглянути файл
@@ -0,0 +1,4 @@
<!-- OpenIDEA: Settings sliders (options) -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 4.5H8M11 4.5H14M2 11.5H4M7 11.5H14" stroke="#6C707E" stroke-linecap="round"/><circle cx="9.5" cy="4.5" r="1.5" stroke="#6C707E"/><circle cx="5.5" cy="11.5" r="1.5" stroke="#6C707E"/>
</svg>

Після

Ширина:  |  Висота:  |  Розмір: 344 B

+4
Переглянути файл
@@ -0,0 +1,4 @@
<!-- OpenIDEA: GraphQL tool window (hexagon with inscribed triangle) -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 2L13.2 5V11L8 14L2.8 11V5L8 2Z" stroke="#6C707E" stroke-linejoin="round"/><path d="M8 2L13.2 11H2.8L8 2Z" stroke="#6C707E" stroke-linejoin="round"/><circle cx="8" cy="2" r="1.25" fill="#6C707E"/><circle cx="13.2" cy="5" r="1.25" fill="#6C707E"/><circle cx="13.2" cy="11" r="1.25" fill="#6C707E"/><circle cx="8" cy="14" r="1.25" fill="#6C707E"/><circle cx="2.8" cy="11" r="1.25" fill="#6C707E"/><circle cx="2.8" cy="5" r="1.25" fill="#6C707E"/>
</svg>

Після

Ширина:  |  Висота:  |  Розмір: 632 B

+4
Переглянути файл
@@ -0,0 +1,4 @@
<!-- OpenIDEA: GraphQL tool window (hexagon with inscribed triangle), stripe size -->
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 2.5L16.5 6.25V13.75L10 17.5L3.5 13.75V6.25L10 2.5Z" stroke="#6C707E" stroke-width="1.2" stroke-linejoin="round"/><path d="M10 2.5L16.5 13.75H3.5L10 2.5Z" stroke="#6C707E" stroke-width="1.2" stroke-linejoin="round"/><circle cx="10" cy="2.5" r="1.5" fill="#6C707E"/><circle cx="16.5" cy="6.25" r="1.5" fill="#6C707E"/><circle cx="16.5" cy="13.75" r="1.5" fill="#6C707E"/><circle cx="10" cy="17.5" r="1.5" fill="#6C707E"/><circle cx="3.5" cy="13.75" r="1.5" fill="#6C707E"/><circle cx="3.5" cy="6.25" r="1.5" fill="#6C707E"/>
</svg>

Після

Ширина:  |  Висота:  |  Розмір: 725 B