summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorhernot <christoph@out-world.com>2019-07-02 09:18:17 +0200
committerw0rp <w0rp@users.noreply.github.com>2019-07-02 08:18:17 +0100
commit46ab7c590404d60567fe57390607c3dc51933c0e (patch)
tree3261827c44d9a7d8fbe8b2154400b2959c0ff5fa /doc
parent870058689063b4ba69851cb3f7e71726d2263cf0 (diff)
downloadale-46ab7c590404d60567fe57390607c3dc51933c0e.zip
Support csc, update mcsc (#2586)
* Added a new csc linter for C# code. * More output is now handled for mcsc.
Diffstat (limited to 'doc')
-rw-r--r--doc/ale-cs.txt90
-rw-r--r--doc/ale-supported-languages-and-tools.txt1
-rw-r--r--doc/ale.txt1
3 files changed, 90 insertions, 2 deletions
diff --git a/doc/ale-cs.txt b/doc/ale-cs.txt
index 01e6348f..abcc43eb 100644
--- a/doc/ale-cs.txt
+++ b/doc/ale-cs.txt
@@ -7,10 +7,96 @@ with the OmniSharp plugin. See here: https://github.com/OmniSharp/omnisharp-vim
===============================================================================
+csc *ale-cs-csc*
+
+ The |ale-cs-csc| linter checks for semantic errors when files are opened or
+ saved.
+
+ See |ale-lint-file-linters| for more information on linters which do not
+ check for problems while you type.
+
+ The csc linter uses the mono csc compiler providing full c# 7 and newer
+ support 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_csc_source| or |b:ale_cs_csc_source|
+ variabl and all sub directories.
+
+ It will in future replace the |ale-cs-mcs| and |ale-cs-mcsc| linters as both
+ utilizer the mcsc compiler which according to mono porject ist further
+ developed and as of writint these lines only receives maintenance updates.
+ The down is that the csc compiler does not support the -sytax option any more
+ and therefore |ale-cs-csc| linter doese not offer any as you type syntax
+ checking like the |ale-cs-mcsc| linter doesn't.
+
+ The paths to search for additional assembly files can be specified using the
+ |g:ale_cs_csc_assembly_path| or |b:ale_cs_csc_assembly_path| variables.
+
+ NOTE: ALE will not find any errors in files apart from syntax errors if any
+ one of the source files contains a syntax error. Syntax errors must be fixed
+ first before other errors will be shown.
+
+
+g:ale_cs_csc_options *g:ale_cs_csc_options*
+ *b:ale_cs_csc_options*
+ Type: |String|
+ Default: `''`
+
+ This option can be set to pass additional arguments to the `csc` compiler.
+
+ For example, to add the dotnet package which is not added per default: >
+
+ let g:ale_cs_mcs_options = ' /warn:4 /langversion:7.2'
+<
+ NOTE: the `/unsafe` option is always passed to `csc`.
+
+
+g:ale_cs_csc_source *g:ale_cs_csc_source*
+ *b:ale_cs_csc_source*
+ Type: |String|
+ Default: `''`
+
+ This variable defines the root path of the directory tree searched for the
+ '*.cs' files to be linted. If this option is empty, the source file's
+ directory will be 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_csc_assembly_path *g:ale_cs_csc_assembly_path*
+ *b:ale_cs_csc_assembly_path*
+ Type: |List|
+ Default: `[]`
+
+ This variable defines a list of path strings to be searched for external
+ assembly files. The list is passed to the csc compiler using the `/lib:`
+ flag.
+
+
+g:ale_cs_csc_assemblies *g:ale_cs_csc_assemblies*
+ *b:ale_cs_csc_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 csc compiler using the `/r:` flag.
+
+ For example: >
+
+ " Compile C# programs with the Unity engine DLL file on Mac.
+ let g:ale_cs_mcsc_assemblies = [
+ \ '/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll',
+ \ 'path-to-unityproject/obj/Debug',
+ \]
+<
+
+===============================================================================
mcs *ale-cs-mcs*
- The `mcs` linter looks only for syntax errors while you type. See |ale-cs-mcsc|
- for the separately configured linter for checking for semantic errors.
+ The `mcs` linter looks only for syntax errors while you type. See
+ |ale-cs-mcsc| for the separately configured linter for checking for semantic
+ errors.
g:ale_cs_mcs_options *g:ale_cs_mcs_options*
diff --git a/doc/ale-supported-languages-and-tools.txt b/doc/ale-supported-languages-and-tools.txt
index 87e1ecde..ec04d175 100644
--- a/doc/ale-supported-languages-and-tools.txt
+++ b/doc/ale-supported-languages-and-tools.txt
@@ -53,6 +53,7 @@ Notes:
* `gcc`
* `uncrustify`
* C#
+ * `csc`!!
* `mcs`
* `mcsc`!!
* `uncrustify`
diff --git a/doc/ale.txt b/doc/ale.txt
index eea3d102..c1dab120 100644
--- a/doc/ale.txt
+++ b/doc/ale.txt
@@ -1975,6 +1975,7 @@ documented in additional help files.
uncrustify............................|ale-cpp-uncrustify|
ccls..................................|ale-cpp-ccls|
c#......................................|ale-cs-options|
+ csc...................................|ale-cs-csc|
mcs...................................|ale-cs-mcs|
mcsc..................................|ale-cs-mcsc|
uncrustify............................|ale-cs-uncrustify|