summaryrefslogtreecommitdiff
path: root/doc/ale-scala.txt
blob: c9638baf24ab004164e55e835b84b3463648f44a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
===============================================================================
ALE Scala Integration                                       *ale-scala-options*


===============================================================================
metals                                                       *ale-scala-metals*

`metals` requires either an SBT project, a Mill project, or a running Bloop
server.


g:ale_scala_metals_executable                    *g:ale_scala_metals_executable*
                                                 *b:ale_scala_metals_executable*
  Type: |String|
  Default: `'metals-vim'`

  Override the invoked `metals` binary.


g:ale_scala_metals_project_root                *g:ale_scala_metals_project_root*
                                               *b:ale_scala_metals_project_root*
  Type: |String|
  Default: `''`

  By default the project root is found by searching upwards for `build.sbt`,
  `build.sc`, `.bloop` or `.metals`.
  If the project root is elsewhere, you can override the project root
  directory.


===============================================================================
sbtserver                                                 *ale-scala-sbtserver*

`sbtserver` requires a running ^1.1.x sbt shell to connect to. It will attempt
to connect via TCP to the address defined in `g:ale_scala_sbtserver_address`.
As `sbt` defaults to listening via unix sockets, place these settings into
your `~/.sbt/1.0/global.sbt` to ensure that ale will always attempt to connect
to the right socket:

`serverConnectionType := ConnectionType.Tcp` and `serverPort := 4273`


g:ale_scala_sbtserver_address                   *g:ale_scala_sbtserver_address*
                                                *b:ale_scala_sbtserver_address*
  Type: |String|
  Default: `'127.0.0.1:4273'`

  By default the address is found by parsing `active.json`, however, reading a
  file is a blocking operation which should be avoided in ale. The easy way
  around this is to configure sbt to always connect to the same port, which
  the instructions above describe.


g:ale_scala_sbtserver_project_root         *g:ale_scala_sbtserver_project_root*
                                           *b:ale_scala_sbtserver_project_root*
  Type: |String|
  Default: `''`

  By default the project root is found by searching upwards for `build.sbt`.
  If the project root is elsewhere, you can override the project root
  directory.


===============================================================================
scalafmt                                                   *ale-scala-scalafmt*

If Nailgun is used, override `g:ale_scala_scalafmt_executable` like so: >
  let g:ale_scala_scalafmt_executable = 'ng'


g:ale_scala_scalafmt_executable               *g:ale_scala_scalafmt_executable*
                                              *b:ale_scala_scalafmt_executable*
  Type: |String|
  Default: `'scalafmt'`

  Override the invoked `scalafmt` binary. This is useful for running `scalafmt`
  with Nailgun.


g:ale_scala_scalafmt_options                     *g:ale_scala_scalafmt_options*
                                                 *b:ale_scala_scalafmt_options*
  Type: |String|
  Default: `''`

  A string containing additional options to pass to `'scalafmt'`, or
  `'ng scalafmt'` if Nailgun is used.


===============================================================================
scalastyle                                               *ale-scala-scalastyle*

`scalastyle` requires a configuration file for a project to run. When no
configuration file can be found, ALE will report a problem saying that a
configuration file is required at line 1.

To disable `scalastyle` globally, use |g:ale_linters| like so: >
  let g:ale_linters = {'scala': ['scalac']} " Enable only scalac instead
<

See |g:ale_linters| for more information on disabling linters.


g:ale_scala_scalastyle_config                   *g:ale_scala_scalastyle_config*
                                                *b:ale_scala_scalastyle_config*
  Type: |String|
  Default: `''`

  A string containing the location of a global fallback configuration file.

  By default, ALE will look for a configuration file named
  `scalastyle_config.xml` or `scalastyle-config.xml` in the current file's
  directory or parent directories.


g:ale_scala_scalastyle_options                 *g:ale_scala_scalastyle_options*
                                               *b:ale_scala_scalastyle_options*
  Type: |String|
  Default: `''`

  A string containing additional options to pass to scalastyle.


===============================================================================
  vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: