summaryrefslogtreecommitdiff
path: root/doc/ale-cs.txt
blob: eeb1abd1a509b912da1130c0229b25cec7001981 (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
===============================================================================
ALE C# Integration                                             *ale-cs-options*


===============================================================================
mcs                                                                *ale-cs-mcs*

  The mcs linter checks the syntax of the '*.cs' file loaded in the current
  buffer only. It uses the --parse option of the mcs compiler and implicitly 
  sets the -unsafe flag.

g:ale_cs_mcs_options                                     *g:ale_cs_mcs_options*
                                                         *b:ale_cs_mcs_options*

  Type: String
  Default: `''`

  This variable can be changed to pass additional flags given to mcs.

  NOTE: The -unsafe flag is selected implicitly and thus does not need to be 
  explicitly included in the |g:ale_cs_mcs_options| or |b:ale_cs_mcs_options|
  parameter.


===============================================================================
mcsc                                                              *ale-cs-mcsc*

  The mcsc linter uses the mono mcs compiler to generate a temporary module
  target file (-t:module). The module includes including all '*.cs' files
  contained in the directory tree rooted at the path defined by the 
  |g:ale_cs_mcsc_source| or |b:ale_cs_mcsc_source| variable.
  variable and all sub directories. 

  The paths to search for additional assembly ('*.dll') files can be
  specified using the |g:ale_cs_mcsc_assembly_path| or 
  |b:ale_cs_mcsc_assembly_path| variable. The additional assembly files ('*.dll')
  can be included through the |g:ale_cs_mcsc_assemblies| or 
  |b:ale_cs_mcsc_assemblies| parameter. 

  NOTE: mcs compiles sources in multiple phases. It stops compilation after
  finding errors during the current phase.
  For example assume a file named 'FileWithTypeError.cs' is edited and saved
  which contains a Type error. In the same directory tree a file named
  'FileWithSyntaxError.cs' exists which contains a syntax error 
  (eg.: a missing '{'). 
  In that case mcs and thus mcsc linter will stop after the syntax check phase is
  finished and report the syntax error in the file 'FileWithSyntaxError.cs'. The
  Type error in the file 'FileWithTypeError.cs is not seen jet.
  The only possibility to find the error in in 'FileWithTypeError.cs' is to fix
  the syntax error in 'FileWithSyntaxError.cs' first. After saving mcs will
  successfully pass the syntax check phase and advance to the next compilation
  phase at which the Type error hidden in 'FileWithTypeError.cs' is found  and 
  now can be indicated  by ale.

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

  This parameter can be used to define additional flags and parameters independent
  of the source tree to be linted. The specified string is directly passed to
  mcs compiler without any further change.

  For example, to add the dotnet package which is not added per default

      let g:ale_cs_mcs_options = '-pkg:dotnet'

  NOTE: The mcs -unsafe option is included implicitly per default. Therefore it
  is not necessary to specify it explicitly through the |g:ale_cs_mcsc_options|
  or |b:ale_cs_mcsc_options| parameter.

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

  This variable defines the root path of the directory tree searched for the
  '*.cs' files to be linted. If empty the current working directory is used.

  NOTE: Currently it is not possible to specify sub directories and
  directory sub trees which shall not be searched for *.cs files.

g:ale_cs_mcsc_assembly_path                       *g:ale_cs_mcsc_assembly_path*
                                                  *b:ale_cs_mcsc_assembly_path*
  Type: |List|
  Default: `[]`

  This variable defines a list of path strings to be searched for external
  assembly ('*.dll') files. The list is passed to the mcs compiler using the
  '-lib:' flag. 

g:ale_cs_mcsc_assemblies                             *g:ale_cs_mcsc_assemblies*
                                                     *b:ale_cs_mcsc_assemblies*
  Type: |List|
  Default: `[]`

  This variable defines a list of external assembly (*.dll) files required 
  by the mono mcs compiler to generate a valid module target. The list is 
  passed the mcs compiler using the '-r:' flag.

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