Ejemplo n.º 1
0
 public TokensMinifier(AdhocWorkspace workspace, MinifierOptions options = null, bool visitIntoStructuredTrivia = true) : base(visitIntoStructuredTrivia)
 {
     _options             = options ?? new MinifierOptions();
     _identifierGenerator = new IdentifierGenerator();
     _workspace           = workspace;
     //Add cause MSBuild does not copy Charp.Workspace.dll
     var _ = typeof(Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions);
 }
Ejemplo n.º 2
0
        public static string RemoveSpacesInSource(string csharpCode)
        {
            var minifierOptions = new MinifierOptions(false);

            minifierOptions.SpacesRemoving     = true;
            minifierOptions.NamespacesRemoving = true;
            var minifier = new Minifier(minifierOptions);

            return(minifier.MinifyFromString(csharpCode));
        }
Ejemplo n.º 3
0
 public void CompressMisc()
 {
     var minifierOptions = new MinifierOptions(false)
     {
         MiscCompressing = true
     };
     var minifier = new Minifier(minifierOptions);
     var minified = minifier.MinifyFromString(Samples["MiscCompression"]);
     Assert.IsTrue(minified.Contains("255"));
     Assert.IsTrue(minified.Contains("0x7048860F9180"));
     Assert.IsFalse(minified.Contains("private"));
     Assert.AreEqual(2, minified.Count(c => c == '{'));
     Assert.AreEqual(2, minified.Count(c => c == '}'));
 }
Ejemplo n.º 4
0
 public void CompressIdentifiers()
 {
     var minifierOptions = new MinifierOptions(false)
     {
         LocalVarsCompressing = true,
         MembersCompressing = true,
         TypesCompressing = true
     };
     var minifier = new Minifier(minifierOptions);
     foreach (var sample in Samples)
     {
         var minified = minifier.MinifyFromString(sample.Value);
         Assert.IsTrue(CompileUtils.CanCompile(minified));
     }
 }
Ejemplo n.º 5
0
        public void CompressMisc()
        {
            var minifierOptions = new MinifierOptions(false)
            {
                MiscCompressing = true
            };
            var minifier = new RoslynMinifier(minifierOptions);
            var minified = minifier.MinifyFromString(Samples["MiscCompression"]);

            Assert.IsTrue(minified.Contains("255"));
            Assert.IsTrue(minified.Contains("0x7048860F9180"));
            Assert.IsFalse(minified.Contains("private"));
            Assert.AreEqual(2, minified.Count(c => c == '{'));
            Assert.AreEqual(2, minified.Count(c => c == '}'));
        }
Ejemplo n.º 6
0
        public void CompressIdentifiers()
        {
            var minifierOptions = new MinifierOptions(false)
            {
                LocalVarsCompressing = true,
                MembersCompressing   = true,
                TypesCompressing     = true
            };
            var minifier = new RoslynMinifier(minifierOptions);

            foreach (var sample in Samples)
            {
                var minified = minifier.MinifyFromString(sample.Value);
                Assert.IsTrue(CompileUtils.CanCompile(minified));
            }
        }
Ejemplo n.º 7
0
        public void LineLengthConstraint()
        {
            var minifierOptions = new MinifierOptions
            {
                SpacesRemoving   = false,
                CommentsRemoving = true,
                LineLength       = 80,
                RegionsRemoving  = true
            };
            var minifier = new RoslynMinifier(minifierOptions);

            foreach (var sample in Samples)
            {
                var minified = minifier.MinifyFromString(sample.Value);
                Assert.IsTrue(CompileUtils.CanCompile(minified));
            }
        }
Ejemplo n.º 8
0
        private void btnMinify_Click(object sender, EventArgs e)
        {
            var minifierOptions = new MinifierOptions
            {
                LocalVarsCompressing    = cbCompressLocalVars.Checked,
                MembersCompressing      = cbCompressMemebers.Checked,
                TypesCompressing        = cbCompressTypes.Checked,
                SpacesRemoving          = cbRemoveSpaces.Checked,
                RegionsRemoving         = cbRemoveRegions.Checked,
                CommentsRemoving        = cbRemoveComments.Checked,
                MiscCompressing         = cbCompressMisc.Checked,
                ConsoleApp              = cbConsoleApp.Checked,
                NamespacesRemoving      = cbRemoveNamespaces.Checked,
                LineLength              = int.Parse(tbLineLength.Text),
                ToStringMethodsRemoving = cbRemoveToStringMethods.Checked,
                PublicCompressing       = cbCompressPublic.Checked,
                EnumToIntConversion     = cbEnumToIntConversion.Checked,
                Unsafe = cbUnsafe.Checked
            };
            Minifier minifier = new Minifier(minifierOptions);

            tbOutput.Text = !cbMinifyFiles.Checked ? minifier.MinifyFromString(tbInput.Text) : minifier.MinifyFiles(Sources.Select(source => source.Value).ToArray());

            tbInputLength.Text      = tbInput.Text.Length.ToString();
            tbOutputLength.Text     = tbOutput.Text.Length.ToString();
            tbOutputInputRatio.Text = ((double)tbOutput.Text.Length / tbInput.Text.Length).ToString("0.000000");
            var compileResult = CompileUtils.Compile(tbOutput.Text);

            dgvErrors.Rows.Clear();
            if (!compileResult.Errors.HasErrors)
            {
                pbOutputCompilied.Image = Resources.Ok;
                lblOutputCompilied.Text = "Compilied";
            }
            else
            {
                pbOutputCompilied.Image = Resources.Error;
                lblOutputCompilied.Text = "Not compilied";
                for (int i = 0; i < compileResult.Errors.Count; i++)
                {
                    var error = compileResult.Errors[i];
                    dgvErrors.Rows.Add(error.Line.ToString(), error.Column.ToString(),
                                       error.ErrorText, "output");
                }
            }
        }
Ejemplo n.º 9
0
        public void RemoveSpaces()
        {
            var minifierOptions = new MinifierOptions(false)
            {
                SpacesRemoving = true
            };
            var minifier = new RoslynMinifier(minifierOptions);

            foreach (var sample in Samples)
            {
                var minified = minifier.MinifyFromString(sample.Value);
                Assert.IsTrue(CompileUtils.CanCompile(minified));
                if (sample.Key == "Test1")
                {
                    Assert.IsFalse(minified.Contains(" /*"));
                }
            }
        }
Ejemplo n.º 10
0
        private void btnMinify_Click(object sender, EventArgs e)
        {
            var minifierOptions = new MinifierOptions
            {
                LocalVarsCompressing = cbCompressLocalVars.Checked,
                MembersCompressing = cbCompressMemebers.Checked,
                TypesCompressing = cbCompressTypes.Checked,
                SpacesRemoving = cbRemoveSpaces.Checked,
                RegionsRemoving = cbRemoveRegions.Checked,
                CommentsRemoving = cbRemoveComments.Checked,
                MiscCompressing = cbCompressMisc.Checked,
                ConsoleApp = cbConsoleApp.Checked,
                NamespacesRemoving = cbRemoveNamespaces.Checked,
                LineLength = int.Parse(tbLineLength.Text),
                ToStringMethodsRemoving = cbRemoveToStringMethods.Checked,
                PublicCompressing = cbCompressPublic.Checked,
                EnumToIntConversion = cbEnumToIntConversion.Checked
            };
            Minifier minifier = new Minifier(minifierOptions);
            tbOutput.Text = !cbMinifyFiles.Checked ? minifier.MinifyFromString(tbInput.Text) : minifier.MinifyFiles(Sources.Select(source => source.Value).ToArray());

            tbInputLength.Text = tbInput.Text.Length.ToString();
            tbOutputLength.Text = tbOutput.Text.Length.ToString();
            tbOutputInputRatio.Text = ((double)tbOutput.Text.Length / tbInput.Text.Length).ToString("0.000000");
            var compileResult = CompileUtils.Compile(tbOutput.Text);
            dgvErrors.Rows.Clear();
            if (!compileResult.Errors.HasErrors)
            {
                pbOutputCompilied.Image = Resources.Ok;
                lblOutputCompilied.Text = "Compilied";
            }
            else
            {
                pbOutputCompilied.Image = Resources.Error;
                lblOutputCompilied.Text = "Not compilied";
                for (int i = 0; i < compileResult.Errors.Count; i++)
                {
                    var error = compileResult.Errors[i];
                    dgvErrors.Rows.Add(error.Line.ToString(), error.Column.ToString(),
                        error.ErrorText, "output");
                }
            }
        }
Ejemplo n.º 11
0
        public void RemoveRegions()
        {
            var minifierOptions = new MinifierOptions
            {
                SpacesRemoving  = true,
                RegionsRemoving = true
            };
            var minifier = new RoslynMinifier(minifierOptions);

            var test = Samples["Test1"];

            if (!test.Contains("#region") || !test.Contains("#endregion"))
            {
                Assert.Inconclusive("Invalid test sample for RemoveRegions test");
            }
            var minified = minifier.MinifyFromString(test);

            Assert.IsTrue(CompileUtils.CanCompile(minified));
            Assert.IsFalse(minified.Contains("#region"));
            Assert.IsFalse(minified.Contains("#endregion"));
        }
Ejemplo n.º 12
0
        public void RemoveComments()
        {
            var minifierOptions = new MinifierOptions(false)
            {
                SpacesRemoving   = true,
                CommentsRemoving = true
            };
            var minifier = new Minifier(minifierOptions);

            var test = Samples["Test1"];

            if (!test.Contains("//") || !test.Contains("/*") || !test.Contains("*/"))
            {
                Assert.Inconclusive("Invalid test sample for RemoveComments test");
            }
            var minified = minifier.MinifyFromString(test);

            Assert.IsTrue(CompileUtils.CanCompile(minified));
            Assert.IsFalse(minified.Contains("//"));
            Assert.IsFalse(minified.Contains("/*"));
            Assert.IsFalse(minified.Contains("*/"));
        }
Ejemplo n.º 13
0
 public void RemoveSpaces()
 {
     var minifierOptions = new MinifierOptions(false)
     {
         SpacesRemoving = true
     };
     var minifier = new Minifier(minifierOptions);
     foreach (var sample in Samples)
     {
         var minified = minifier.MinifyFromString(sample.Value);
         Assert.IsTrue(CompileUtils.CanCompile(minified));
         if (sample.Key == "Test1")
             Assert.IsFalse(minified.Contains(" /*"));
     }
 }
Ejemplo n.º 14
0
        public void RemoveRegions()
        {
            var minifierOptions = new MinifierOptions
            {
                SpacesRemoving = true,
                RegionsRemoving = true
            };
            var minifier = new Minifier(minifierOptions);

            var test = Samples["Test1"];
            if (!test.Contains("#region") || !test.Contains("#endregion"))
                Assert.Inconclusive("Invalid test sample for RemoveRegions test");
            var minified = minifier.MinifyFromString(test);
            Assert.IsTrue(CompileUtils.CanCompile(minified));
            Assert.IsFalse(minified.Contains("#region"));
            Assert.IsFalse(minified.Contains("#endregion"));
        }
Ejemplo n.º 15
0
 public void LineLengthConstraint()
 {
     var minifierOptions = new MinifierOptions
     {
         SpacesRemoving = true,
         CommentsRemoving = true,
         LineLength = 80,
         RegionsRemoving = true
     };
     var minifier = new Minifier(minifierOptions);
     foreach (var sample in Samples)
     {
         var minified = minifier.MinifyFromString(sample.Value);
         Assert.IsTrue(CompileUtils.CanCompile(minified));
     }
 }