+++
title = "Bat understands varlink now"
date = 2019-02-07T07:04:47+00:00
+++
[Bat](https://github.com/sharkdp/bat) is a *cat(1)* clone with syntax highlighting and Git integration.

My pull request for varlink syntax coloring was accepted today :\-)

<!-- more -->

So, to display:

```varlink
# The Varlink Service Interface is provided by every varlink service. It
# describes the service and the interfaces it implements.
interface org.varlink.service

# Get a list of all the interfaces a service provides and information
# about the implementation.
method GetInfo() -> (
  vendor: string,
  product: string,
  version: string,
  url: string,
  interfaces: []string
)

# Get the description of an interface that is implemented by this service.
method GetInterfaceDescription(interface: string) -> (description: string)

# The requested interface was not found.
error InterfaceNotFound (interface: string)

# The requested method was not found
error MethodNotFound (method: string)

# The interface defines the requested method, but the service does not
# implement it.
error MethodNotImplemented (method: string)

# One of the passed parameters is invalid.
error InvalidParameter (parameter: string)
```

it will look like this:

<pre style="background-color: black;color: white"><b>$</b> bat org.varlink.service.varlink
<font color="#444444">───────┬───────────────────────────────────────────────────────────────────────────────</font>
       <font color="#444444">│ </font>File: <b>org.varlink.service.varlink</b>
<font color="#444444">───────┼───────────────────────────────────────────────────────────────────────────────</font>
<font color="#444444">   1</font>   <font color="#444444">│</font> <font color="#75715E"># The Varlink Service Interface is provided by every varlink service. It</font>
<font color="#444444">   2</font>   <font color="#444444">│</font> <font color="#75715E"># describes the service and the interfaces it implements.</font>
<font color="#444444">   3</font>   <font color="#444444">│</font> <font color="#66D9EF">interface</font><font color="#F8F8F2"> </font><font color="#A6E22E">org.varlink.service</font>
<font color="#444444">   4</font>   <font color="#444444">│</font> 
<font color="#444444">   5</font>   <font color="#444444">│</font> <font color="#75715E"># Get a list of all the interfaces a service provides and information</font>
<font color="#444444">   6</font>   <font color="#444444">│</font> <font color="#75715E"># about the implementation.</font>
<font color="#444444">   7</font>   <font color="#444444">│</font> <font color="#66D9EF">method</font><font color="#F8F8F2"> </font><font color="#A6E22E">GetInfo</font><font color="#F8F8F2">() </font><font color="#F92672">-&gt; </font><font color="#F8F8F2">(</font>
<font color="#444444">   8</font>   <font color="#444444">│</font> <font color="#F8F8F2">  </font><font color="#FD971F">vendor</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">,</font>
<font color="#444444">   9</font>   <font color="#444444">│</font> <font color="#F8F8F2">  </font><font color="#FD971F">product</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">,</font>
<font color="#444444">  10</font>   <font color="#444444">│</font> <font color="#F8F8F2">  </font><font color="#FD971F">version</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">,</font>
<font color="#444444">  11</font>   <font color="#444444">│</font> <font color="#F8F8F2">  </font><font color="#FD971F">url</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">,</font>
<font color="#444444">  12</font>   <font color="#444444">│</font> <font color="#F8F8F2">  </font><font color="#FD971F">interfaces</font><font color="#F8F8F2">: </font><font color="#F92672">[]</font><font color="#66D9EF">string</font>
<font color="#444444">  13</font>   <font color="#444444">│</font> <font color="#F8F8F2">)</font>
<font color="#444444">  14</font>   <font color="#444444">│</font> 
<font color="#444444">  15</font>   <font color="#444444">│</font> <font color="#75715E"># Get the description of an interface that is implemented by this service.</font>
<font color="#444444">  16</font>   <font color="#444444">│</font> <font color="#66D9EF">method</font><font color="#F8F8F2"> </font><font color="#A6E22E">GetInterfaceDescription</font><font color="#F8F8F2">(</font><font color="#FD971F">interface</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">) </font><font color="#F92672">-&gt; </font><font color="#F8F8F2">(</font><font color="#FD971F">description</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">)</font>
<font color="#444444">  17</font>   <font color="#444444">│</font> 
<font color="#444444">  18</font>   <font color="#444444">│</font> <font color="#75715E"># The requested interface was not found.</font>
<font color="#444444">  19</font>   <font color="#444444">│</font> <font color="#66D9EF">error</font><font color="#F8F8F2"> </font><font color="#A6E22E">InterfaceNotFound</font><font color="#F8F8F2"> (</font><font color="#FD971F">interface</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">)</font>
<font color="#444444">  20</font>   <font color="#444444">│</font> 
<font color="#444444">  21</font>   <font color="#444444">│</font> <font color="#75715E"># The requested method was not found</font>
<font color="#444444">  22</font>   <font color="#444444">│</font> <font color="#66D9EF">error</font><font color="#F8F8F2"> </font><font color="#A6E22E">MethodNotFound</font><font color="#F8F8F2"> (</font><font color="#FD971F">method</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">)</font>
<font color="#444444">  23</font>   <font color="#444444">│</font> 
<font color="#444444">  24</font>   <font color="#444444">│</font> <font color="#75715E"># The interface defines the requested method, but the service does not</font>
<font color="#444444">  25</font>   <font color="#444444">│</font> <font color="#75715E"># implement it.</font>
<font color="#444444">  26</font>   <font color="#444444">│</font> <font color="#66D9EF">error</font><font color="#F8F8F2"> </font><font color="#A6E22E">MethodNotImplemented</font><font color="#F8F8F2"> (</font><font color="#FD971F">method</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">)</font>
<font color="#444444">  27</font>   <font color="#444444">│</font> 
<font color="#444444">  28</font>   <font color="#444444">│</font> <font color="#75715E"># One of the passed parameters is invalid.</font>
<font color="#444444">  29</font>   <font color="#444444">│</font> <font color="#66D9EF">error</font><font color="#F8F8F2"> </font><font color="#A6E22E">InvalidParameter</font><font color="#F8F8F2"> (</font><font color="#FD971F">parameter</font><font color="#F8F8F2">: </font><font color="#66D9EF">string</font><font color="#F8F8F2">)</font>
<font color="#444444">───────┴───────────────────────────────────────────────────────────────────────────────</font>
</pre>