Go to file
Paul Hoad cbb726d0c5 [clang-format] Add basic support for formatting C# files
Summary:

This revision adds basic support for formatting C# files with clang-format, I know the barrier to entry is high here  so I'm sending this revision in to test the water as to whether this might be something we'd consider landing.

Tracking in Bugzilla as:
https://bugs.llvm.org/show_bug.cgi?id=40850

Justification:
C# code just looks ugly in comparison to the C++ code in our source tree which is clang-formatted.

I've struggled with Visual Studio reformatting to get a clean and consistent style, I want to format our C# code on saving like I do now for C++ and i want it to have the same style as defined in our .clang-format file, so it consistent as it can be with C++.  (Braces/Breaking/Spaces/Indent etc..)

Using clang format without this patch leaves the code in a bad state, sometimes when the BreakStringLiterals is set, it  fails to compile.

Mostly the C# is similar to Java, except instead of JavaAnnotations I try to reuse the TT_AttributeSquare.

Almost the most valuable portion is to have a new Language in order to partition the configuration for C# within a common .clang-format file, with the auto detection on the .cs extension. But there are other C# specific styles that could be added later if this is accepted. in particular how  `{ set;get }` is formatted.

Reviewers: djasper, klimek, krasimir, benhamilton, JonasToth

Reviewed By: klimek

Subscribers: llvm-commits, mgorny, jdoerfert, cfe-commits

Tags: #clang, #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D58404

llvm-svn: 356662
2019-03-21 13:09:22 +00:00
clang [clang-format] Add basic support for formatting C# files 2019-03-21 13:09:22 +00:00
clang-tools-extra Reland r356547 after fixing the YAML module missing issue. 2019-03-21 08:32:07 +00:00
compiler-rt Make __cpu_model a hidden symbol, to match libgcc. 2019-03-20 17:37:23 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc sincos: Simplify declaration headers. 2019-03-13 07:13:34 +00:00
libcxx Add dylib-has-no-filesystem when filesystem is disabled 2019-03-21 02:13:30 +00:00
libcxxabi Revert "[runtimes] Move libunwind, libc++abi and libc++ to lib/ and include/" 2019-03-08 20:33:55 +00:00
libunwind Revert "[runtimes] Move libunwind, libc++abi and libc++ to lib/ and include/" 2019-03-08 20:33:55 +00:00
lld [WebAssembly] Target features section 2019-03-20 20:26:45 +00:00
lldb Use list comprehension instead of map/filter to prepare Python2/3 compat 2019-03-21 07:19:09 +00:00
llgo Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
llvm [Thumb] Fix infinite loop in ABS expansion (PR41160) 2019-03-21 12:41:18 +00:00
openmp [OpenMP] Fix OMPT cancellation test for GOMP 2019-03-15 21:24:45 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly [CodeGen] LLVM OpenMP Backend. 2019-03-19 03:18:21 +00:00
pstl [pstl] By default, disable the parallel policies 2019-03-14 19:33:58 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.