[PATCH] D13549: Added new options to ClangFormat VSIX package.
Zachary Turner via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 15 14:51:49 PDT 2015
zturner added a comment.
No obvious problems, mostly just style issues. Feel free to consider them optional.
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:38
@@ +37,3 @@
+ private bool sortIncludes = false;
+ private string style = "file";
+
----------------
How about an enum instead?
private enum Style {
File,
Chromium,
Google,
LLVM,
Mozilla,
Webkit
}
private Style style;
Then change the `StyleConverter` to just convert the enum value to its corresponding string representation?
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:42-47
@@ +41,8 @@
+ {
+ protected ArrayList values;
+ public StyleConverter()
+ {
+ // Initializes the standard values list with defaults.
+ values = new ArrayList(new string[] { "file", "Chromium", "Google", "LLVM", "Mozilla", "WebKit" });
+ }
+
----------------
This would all go away
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:56
@@ +55,3 @@
+ {
+ return new StandardValuesCollection(values);
+ }
----------------
This becomes `return new StandardValuesCollection(Enum.GetValues(typeof(Style)))`
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:61-64
@@ +60,6 @@
+ {
+ if (sourceType == typeof(string))
+ return true;
+
+ return base.CanConvertFrom(context, sourceType);
+ }
----------------
This becomes `sourceType == typeof(Style) || base.CanConvertFrom(context, sourceType)`
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:69-73
@@ +68,7 @@
+ {
+ string s = value as string;
+ if (s == null)
+ return base.ConvertFrom(context, culture, value);
+
+ return value;
+ }
----------------
This becomes
Style s = value as Style;
if (value == null)
return base.ConvertFrom(context, culture, value);
return value.ToString();
(I think, I can't tell what the source and destination type are supposed to be here)
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:92
@@ -51,2 +91,3 @@
+ [TypeConverter(typeof(StyleConverter))]
public string Style
{
----------------
Now you can return an enum here instead of a string
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:115
@@ +114,3 @@
+ // Check if string contains quotes. On Windows, file names cannot contain quotes.
+ // We do not accept them however to avoid hard-to-debug problems.
+ // A quote in user input would end the parameter quote and so break the command invocation.
----------------
Wouldn't it be better to just return `false` from `CanConvertFrom` if the filename contains quotes? Then you can assert in this function that it does not contain quotes?
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:136-143
@@ +135,10 @@
+
+ public sealed class FallbackStyleConverter : StyleConverter
+ {
+ public FallbackStyleConverter()
+ {
+ // Add "none" to the list of styles.
+ values.Insert(0, "none");
+ }
+ }
+
----------------
Same comment as before, but use the enum.s I guess you would need to make `None` one of the actual style enum values, but remove it before returning the list in the other StyleConverter.
================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs:331-347
@@ -213,1 +330,19 @@
+ private string GetAssumeFilename()
+ {
+ var page = (OptionPageGrid)GetDialogPage(typeof(OptionPageGrid));
+ return page.AssumeFilename;
+ }
+
+ private string GetFallbackStyle()
+ {
+ var page = (OptionPageGrid)GetDialogPage(typeof(OptionPageGrid));
+ return page.FallbackStyle;
+ }
+
+ private bool GetSortIncludes()
+ {
+ var page = (OptionPageGrid)GetDialogPage(typeof(OptionPageGrid));
+ return page.SortIncludes;
+ }
+
----------------
Maybe you could use properties instead of functions.
http://reviews.llvm.org/D13549
More information about the cfe-commits
mailing list