Skip to content

Commit 2b968e6

Browse files
opwvhkmartin-g
andauthored
AVRO-3951: Document IDE support (#3366)
* AVRO-3951: Document IDE support Move the IDL plugins to a separate page, and also document IDE/editor extensions that work with other Avro related files. * Update doc/content/en/docs/++version++/Editor Support/_index.md Co-authored-by: Martin Grigorov <martin-g@users.noreply.github.com> --------- Co-authored-by: Martin Grigorov <martin-g@users.noreply.github.com>
1 parent 356efee commit 2b968e6

10 files changed

Lines changed: 220 additions & 57 deletions

File tree

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
---
2+
title: "Editor Support"
3+
linkTitle: "Editor Support"
4+
weight: 209
5+
---
6+
7+
<!--
8+
9+
Licensed to the Apache Software Foundation (ASF) under one
10+
or more contributor license agreements. See the NOTICE file
11+
distributed with this work for additional information
12+
regarding copyright ownership. The ASF licenses this file
13+
to you under the Apache License, Version 2.0 (the
14+
"License"); you may not use this file except in compliance
15+
with the License. You may obtain a copy of the License at
16+
17+
https://www.apache.org/licenses/LICENSE-2.0
18+
19+
Unless required by applicable law or agreed to in writing,
20+
software distributed under the License is distributed on an
21+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
22+
KIND, either express or implied. See the License for the
23+
specific language governing permissions and limitations
24+
under the License.
25+
26+
-->
27+
28+
## Overview
29+
30+
When editing an Avro schema, everyone has a preferred editor. Some use an IDE, like IntelliJ, PyCharm, RustRover or
31+
Visual Studio, while others prefer a more humble text editor like Atom/Pulsar, Emacs or Vim.
32+
33+
Most provide help when working with Avro via JSON support (for JSON schemata) by offering syntax highlighting and
34+
formatting. Some provide more help, for example syntax highlighting for IDL schemata, code completion, error
35+
highlighting and more.
36+
37+
The IDEs and editors that we know to support Avro better than just editing schemata as JSON files are listed below in
38+
alphabetical order.
39+
40+
## Eclipse
41+
42+
Eclipse is a free IDE that provides extensions via the [Eclipse Marketplace](https://marketplace.eclipse.org/).
43+
44+
### Avroclipse
45+
46+
<img style="float: right; object-fit: contain; width: 160px; height: 160px;" src="eclipseAvroclipse.png"/>[Extension](https://marketplace.eclipse.org/content/avroclipse) ([source](https://github.com/dvdkruk/avroclipse))
47+
48+
Released in 2015, this plugin received its last update in December 2019.
49+
50+
Features for IDL files:
51+
52+
* Syntax Highlighting
53+
* Code Completion
54+
* Error Highlighting
55+
56+
## Emacs
57+
58+
Sometimes ridiculed as an operating system, Emacs is a rich text editor. Many packages are available
59+
via one of the three main package archives: [GNU ELPA](https://elpa.gnu.org/), [non-GNU ELPA](https://elpa.nongnu.org/)
60+
or [MELPA](https://melpa.org/).
61+
62+
### emacs-avro
63+
64+
[Package source](https://github.com/logc/emacs-avro)
65+
66+
Originally released elsewhere in 2013, the last update was in March 2021.
67+
68+
This package is not available via the main package archives.
69+
70+
Provides syntax highlighting for IDL schemata.
71+
72+
## JetBrains IDE family
73+
74+
JetBrains features an entire line of IDEs. They include IntelliJ IDEA, PyCharm, PhpStorm, GoLand, Rider, CLion,
75+
RustRover, WebStorm, RubyMine,
76+
DataGrip, DataSpell, ReSharper, Fleet, and Aqua.
77+
78+
All of them use the [Plugin Marketplace](https://plugins.jetbrains.com/) to load extensions from.
79+
80+
### Apache Avro IDL Schema Support
81+
82+
<img style="float: right; object-fit: contain; width: 160px; height: 160px;" src="jetbrainsAvroIdlSchemaSupport.svg"/>[Plugin](https://plugins.jetbrains.com/plugin/15728-apache-avro-idl-schema-support) ([source](https://github.com/opwvhk/avro-schema-support?tab=readme-ov-file#intellij-plugin-for-apache-avro-idl))
83+
84+
Released in 2021, this plugin received its last update in November 2023.
85+
86+
Features for Avro schema & protocol definitions:
87+
88+
* Syntax Highlighting
89+
* Code Completion
90+
* Code Formatting
91+
* Error Highlighting
92+
* Inspections & quick fixes (IDL only)
93+
* New file templates
94+
95+
The plugin supports all JetBrains products.
96+
97+
### Avro and Parquet Viewer
98+
99+
<img style="float: right; object-fit: contain; width: 160px; height: 160px;" src="jetbrainsAvroAndParquetViewer.svg"/>[Plugin](https://plugins.jetbrains.com/plugin/12281-avro-and-parquet-viewer) ([source](https://github.com/benwatson528/intellij-avro-parquet-plugin))]
100+
101+
Released in 2021, this plugin received its last update in November 2022.
102+
103+
Allows previewing `.avro` files, and shows its schema in an editor tab.
104+
105+
### Big Data File Viewer
106+
107+
<img style="float: right; object-fit: contain; width: 160px; height: 160px;" src="jetbrainsBigDataFileViewer.svg"/>[Plugin](https://plugins.jetbrains.com/plugin/21701-big-data-file-viewer) (
108+
part of the [Big Data Tools](https://plugins.jetbrains.com/bundles/8-big-data-tools))
109+
110+
Released in 2023, this plugin is actively developed by JetBrains.
111+
112+
Allows previewing `.avro` files, and shows its schema in the structure tool window.
113+
114+
## Pulsar/Atom
115+
116+
Though the Atom.io editor has been sunset late 2022, the public fork [Pulsar](https://pulsar-edit.dev/) has taken its
117+
place. Extensions can be found in its [Package Repository](https://web.pulsar-edit.dev/).
118+
119+
### atom-language-avro
120+
121+
[Package](https://web.pulsar-edit.dev/packages/atom-language-avro) ([source](https://github.com/jonesetc/atom-language-avro))
122+
123+
Released in 2015, this package provides syntax highlighting for IDL schemata.
124+
125+
## Vim
126+
127+
### vim-avro
128+
129+
[Plugin source](https://github.com/gurpreetatwal/vim-avro?tab=readme-ov-file#vim-avro)
130+
131+
Released in December 2016, this plugin has received no updates since.
132+
133+
Features syntax highlighting for IDL schemata,
134+
135+
### avro-idl.vim
136+
137+
[Plugin source](https://github.com/apache/avro/blob/main/share/editors/avro-idl.vim)
138+
139+
Featured in the Avro repository `share/editors` directory. Introduced in 2010, this plugin received its last update in
140+
June 2019.
141+
142+
Features syntax highlighting for IDL schemata,
143+
144+
## Visual Studio Code:
145+
146+
Being a Microsoft product, Visual Studio Code provides extensions via
147+
a [Plugin Marketplace](https://marketplace.visualstudio.com/).
148+
149+
### avro-idl
150+
151+
<img style="float: right; object-fit: contain; width: 160px; height: 160px;" src="visualStudioAvroIdl.png"/>[Plugin](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.avro) ([source](https://github.com/streetsidesoftware/vscode-avro-ext?tab=readme-ov-file#avro-syntax-highlighter))
152+
153+
Released in 2017, this plugin received its last update in June 2021,
154+
155+
It provides syntax highlighting for IDL and JSON schemata.
156+
157+
### avro-tools
158+
159+
<img style="float: right; object-fit: contain; width: 160px; height: 160px;" src="visualStudioAvroTools.png"/>[Plugin](https://marketplace.visualstudio.com/items?itemName=tomaszbartoszewski.avro-tools) ([source](https://github.com/tomaszbartoszewski/vscode-avro-tools?tab=readme-ov-file#avro-tools))
160+
161+
Released in 2020, this plugin has not received updates after its release day.
162+
163+
It does provide more features than most plugins:
164+
165+
* syntax highlighting for `.avsc` files
166+
* formatting
167+
* snippets for fields with types.
168+
169+
### avro-viewer
170+
171+
<img style="float: right; object-fit: contain; width: 160px; height: 160px;" src="visualStudioAvroViewer.png"/>[Plugin](https://marketplace.visualstudio.com/items?itemName=yasunari89.avro-viewer) ([source](https://github.com/yasunari89/avro-viewer?tab=readme-ov-file#avro-viewer-readme))
172+
173+
Released in 2023, this plugin received its last update in June 2023.
174+
175+
It allows you to preview `.avro` files (uncompressed only), with its schema.
6.27 KB
Loading
Lines changed: 6 additions & 0 deletions
Loading
Lines changed: 21 additions & 0 deletions
Loading
Lines changed: 13 additions & 0 deletions
Loading
28.6 KB
Loading
6.93 KB
Loading
111 KB
Loading

doc/content/en/docs/++version++/IDL Language/_index.md

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -454,60 +454,3 @@ protocol Simple {
454454
```
455455
456456
Additional examples may be found in the Avro source tree under the `src/test/idl/input` directory.
457-
458-
## IDE support
459-
460-
There are several editors and IDEs that support Avro IDL files, usually via plugins.
461-
462-
### JetBrains
463-
464-
Apache Avro IDL Schema Support 203.1.2 was released in 9 December 2021.
465-
466-
Features:
467-
* Syntax Highlighting
468-
* Code Completion
469-
* Code Formatting
470-
* Error Highlighting
471-
* Inspections & quick fixes
472-
* JSON schemas for .avpr and .avsc files
473-
474-
It's available via the [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/15728-apache-avro-idl-schema-support)
475-
and on [GitHub](https://github.com/opwvhk/avro-schema-support).
476-
477-
The plugin supports almost the all JetBrains products: IntelliJ IDEA, PyCharm, WebStorm, Android Studio, AppCode, GoLand, Rider, CLion, RubyMine, PhpStorm, DataGrip, DataSpell, MPS, Code With Me Guest and JetBrains Client.
478-
479-
Only JetBrains Gateway does not support this plugin directly. But the backend (JetBrains) IDE that it connects to does.
480-
481-
### Eclipse
482-
483-
Avroclipse 0.0.11 was released on 4 December 2019.
484-
485-
Features:
486-
* Syntax Highlighting
487-
* Error Highlighting
488-
* Code Completion
489-
490-
It is available on the [Eclipse Marketplace](https://marketplace.eclipse.org/content/avroclipse)
491-
and [GitHub](https://github.com/dvdkruk/avroclipse).
492-
493-
### Visual Studio Code
494-
495-
avro-idl 0.5.0 was released on 16 June 2021. It provides syntax highlighting.
496-
497-
It is available on the [VisualStudio Marketplace](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.avro)
498-
and [GitHub](https://github.com/Jason3S/vscode-avro-ext)
499-
500-
### Atom.io
501-
502-
atom-language-avro 0.0.13 was released on 14 August 2015. It provides syntax highlighting.
503-
504-
It is available as [Atom.io package](https://atom.io/packages/atom-language-avro)
505-
and [GitHub](https://github.com/jonesetc/atom-language-avro)
506-
507-
### Vim
508-
509-
A `.avdl` detecting plugin by Gurpreet Atwal on [GitHub](https://github.com/gurpreetatwal/vim-avro) (Last change in December 2016)
510-
511-
[avro-idl.vim](https://github.com/apache/avro/blob/main/share/editors/avro-idl.vim) in the Avro repository `share/editors` directory (last change in September 2010)
512-
513-
Both provide syntax highlighting.

share/editors/README.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
11
Syntax highlighting and config files for working with Avro files in various text editors.
2+
3+
Some, like Microsoft Visual Studio and the various JetBrains IDEs, have their own plugin
4+
marketplace to offer/provide plugins to handle Avro files.
5+
6+
Full information is available in the documentation: https://avro.apache.org/docs/current/editor-support/

0 commit comments

Comments
 (0)