summaryrefslogtreecommitdiff
path: root/doc/ale-scala.txt
blob: 0b0f1a9a551c162850121ba67ce56aa8316f22ee (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
125
126
127
128
129
130
===============================================================================
ALE Scala Integration                                       *ale-scala-options*


===============================================================================
cspell                                                       *ale-scala-cspell*

See |ale-cspell-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: