|
| 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. |
0 commit comments