Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Resolving Symbolic References in a CodeDOM (Part 7)

, 2 Dec 2012
Resolving symbolic references in a CodeDOM.
Nova.0.6.exe.zip
Mono.Cecil.dll
Nova.CLI.exe
Nova.CodeDOM.dll
Nova.Examples.exe
Nova.Studio.exe
Nova.Test.exe
Nova.UI.dll
Nova.0.6.zip
Nova.CLI
Properties
Nova.CodeDOM
CodeDOM
Annotations
Base
Comments
Base
DocComments
CodeRef
Base
List
Name
Base
Other
Simple
CompilerDirectives
Base
Conditionals
Base
Messages
Base
Pragmas
Base
Symbols
Base
Base
Interfaces
Expressions
AnonymousMethods
Base
Operators
Base
Binary
Arithmetic
Base
Assignment
Base
Bitwise
Base
Conditional
Relational
Base
Shift
Base
Other
Base
Unary
Base
Other
References
Base
GotoTargets
Base
Methods
Namespaces
Other
Properties
Types
Base
Variables
Base
Projects
Assemblies
Namespaces
References
Base
Statements
Base
Conditionals
Base
Exceptions
Generics
Constraints
Base
Iterators
Base
Jumps
Loops
Methods
OperatorDecls
Miscellaneous
Namespaces
Properties
Base
Events
Types
Base
Variables
Base
Parsing
Base
Properties
Rendering
Resolving
Utilities
Mono.Cecil
Reflection
Nova.Examples
Properties
Nova.Studio
Images
About.png
Configuration.png
EditCopy.png
EditCut.png
EditDelete.png
EditPaste.png
EditRedo.png
EditUndo.png
Error.png
Exit.png
FileNew.png
FileOpen.png
FileSave.png
FileSaveAll.png
FileSaveAs.png
Find.png
Help.png
Info.png
Logo.png
Options.png
Print.png
PrintPreview.png
Properties.png
Todo.png
Warning.png
Objects.ico
Properties
Settings.settings
Nova.Test
Properties
Nova.UI
CodeDOM
Annotations
Base
Comments
Base
DocComments
CodeRef
Base
List
Name
Base
Other
Simple
CompilerDirectives
Base
Conditionals
Base
Messages
Base
Pragmas
Base
Symbols
Base
Base
Expressions
AnonymousMethods
Base
Operators
Base
Binary
Arithmetic
Base
Assignment
Base
Bitwise
Base
Conditional
Relational
Base
Shift
Base
Other
Base
Unary
Base
Other
References
Base
GotoTargets
Base
Methods
Namespaces
Other
Properties
Types
Base
Variables
Base
Projects
Namespaces
References
Base
Statements
Base
Conditionals
Base
Exceptions
Generics
Constraints
Base
Iterators
Base
Jumps
Loops
Methods
OperatorDecls
Miscellaneous
Namespaces
Properties
Base
Events
Types
Base
Variables
Base
Properties
Resolving
Utilties
<?xml version="1.0"?>
<configuration>
  
  <configSections>
    <section name="Nova" type="Nova.Configuration, Nova.CodeDOM"/>
  </configSections>

  <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>

  <appSettings>
    <add key="DiffProgram" value="C:\Program Files (x86)\WinMerge\WinMergeU.exe"/>
  </appSettings>

  <Nova>

    <!-- ==================== NOVA CODEDOM OPTIONS ==================== -->

    <!-- Determines the logging level: None, Minimal, Normal, Detailed.  DEFAULT: Minimal -->
    <!--<add key="Log.LogLevel" value="Normal"/>-->

    <!-- Determines whether or not exact matching is enforced when only one possible match is found for an unresolved reference.
         By default, an exact match is required, but this can be set to false to allow a match if there is only one possibility.  DEFAULT: true -->
    <!--<add key="Resolving.Resolver.ExactMatching" value="false"/>-->

    <!-- Determines if code changes are saved to a separate ".Nova.cs" file instead of the original.  DEFAULT: false -->
    <!--<add key="CodeDOM.CodeUnit.SaveChangesToSeparateFile" value="true"/>-->

    <!-- Determines if DocCode content is parsed as code or plain text.  DEFAULT: true -->
    <!--<add key="CodeDOM.DocCode.ParseContentAsCode" value="false"/>-->

    <!-- Determines if TODO and HACK comments are listed with other messages.  DEFAULT: true -->
    <!--<add key="CodeDOM.Comment.ListSpecialComments" value="false"/>-->

    <!-- Determines if resolve errors in workflow code-beside files (".xoml.cs") are listed.  DEFAULT: false -->
    <!--<add key="CodeDOM.CodeUnit.ListWorkflowFileErrors" value="true"/>-->

    <!-- The tab size used for indentation of code.  DEFAULT: 4 -->
    <!--<add key="CodeDOM.CodeObject.TabSize" value="4"/>-->

    <!-- Automatically detect and preserve tabs used for code indentation.  DEFAULT: true -->
    <!--<add key="CodeDOM.CodeObject.AutoDetectTabs" value="false"/>-->

    <!-- Use tabs instead of spaces for indentation (ignored if AutoDetectTabs is true).  DEFAULT: false -->
    <!--<add key="CodeDOM.CodeObject.UseTabs" value="true"/>-->

    <!-- The maximum line length used for automatic formatting, such as code alignment and line wrapping.  DEFAULT: 128 -->
    <!--<add key="CodeDOM.CodeObject.MaximumLineLength" value="128"/>-->

    <!-- Determines whether or not formatting cleanup is automatically performed during the parsing process.
         This includes:
             - Remove optional braces from single-line bodies and add them to multi-line bodies.
        		 - Force empty braces onto a single line if that's the default and they start on a new line.
             - Force property accessors (get/set) to a single line if they have a single-line body,
                   and remove any blank lines preceeding them in the property declaration (includes events).
             - Force constructor initializers to start on a new line.
             - Move newlines immediately after an operator to before it.
             - Remove parens from expressions that don't use them by default (in various situations).
        		 - Remove more than 3 consecutive blank lines, and all blank lines at the end of a block or preceeding an else/else if/catch/finally.
         DEFAULT: false -->
    <!--<add key="CodeDOM.CodeObject.AutomaticFormattingCleanup" value="true"/>-->

    <!-- Determines whether or not code cleanup is automatically performed during the parsing and/or resolving process.
         This includes:
             - Convert 'System.Type' to 'Type' for built-in types, which are then displayed using keywords
                   (all built-in types are displayed using keywords if they have no 'System' namespace prefix).
             - Convert 'System.Nullable<Type>' to 'Nullable<Type>' for all types, which are then displayed as 'Type?'.
             - Convert 'for (;;)' or 'do { } while (true)' to 'while (true)', and 'while (true)' to have a null
               condition, representing an infinite loop (still displayed as 'while (true)', or optionally, 'do').
             - Convert '<code>expression</code>' in a doc comment to '<c>expression</c>'.
         DEFAULT: false -->
    <!--<add key="CodeDOM.CodeObject.AutomaticCodeCleanup" value="true"/>-->

    <!-- Use Mono Cecil to load assemblies instead of reflection.  Loaded data will use types in the Mono.Cecil
         namespace such as AssemblyDefinition, TypeDefinition, MethodDefinition, PropertyDefinition, FieldDefinition,
         etc. instead of the reflection types of Assembly, Type, MethodInfo, PropertyInfo, FieldInfo, etc.  Using
         Mono Cecil is faster than reflection, and gets around various possible issues, including the inability to
         unload reflection data from memory.  DEFAULT: true -->
    <!--<add key="CodeDOM.ApplicationContext.UseMonoCecilLoads" value="false"/>-->

    <!-- Use reflection-only loads to load assemblies (ignored if using Mono Cecil loads).
         Reflection-only loads bypass strong name verifications, CAS policy checks, processor architecture
         loading rules, binding policies, don't execute any init code, and prevent automatic probing of dependencies.
         This can help to load assemblies that otherwise wouldn't be loadable, but it can also cause loading problems
         of its own, such as trying to load old framework assemblies (due to bypassing binding policies) that aren't
         compatible with newer and/or 64bit OSes, or illegal cross-references with normally-loaded assemblies.
         However, logic has been added to workaround these issues in most cases, and NOT using reflection-only loads
         prevents loading old versions of framework assemblies, which can cause resolve conflicts (in either case,
         old versions of 'mscorlib' can never be loaded into the default app domain).  DEFAULT: true -->
    <!--<add key="CodeDOM.ApplicationContext.UseReflectionOnlyLoads" value="false"/>-->

    <!-- Set to load internal types in addition to public types when loading types from referenced assemblies and
         projects, even when there isn't any InternalsVisibleTo attribute.  This allows resolving namespaces and types
         that would otherwise not be found, allowing code analysis to then flag such references as illegal (not accessible).
         This option will slow things down a bit and use up more memory.  DEFAULT: false -->
    <!--<add key="CodeDOM.Project.LoadInternalTypes" value="true"/>-->

    
    <!-- ==================== NOVA STUDIO UI DISPLAY OPTIONS ==================== -->

    <!-- Determines if borders should be displayed.  DEFAULT: true -->
    <!--<add key="UI.CodeRenderer.ShowBorders" value="false"/>-->

    <!-- Determines if background colors should be displayed.  DEFAULT: true -->
    <!--<add key="UI.CodeRenderer.ShowBackgroundColors" value="false"/>-->

    <!-- Determines if gradient shading should be used.  DEFAULT: true -->
    <!--<add key="UI.CodeRenderer.UseShading" value="false"/>-->

    <!-- Determines if half-height blank lines should be used.  DEFAULT: false -->
    <!--<add key="UI.CodeRenderer.HalfHeightBlankLines" value="true"/>-->

    <!-- Determines if borders should be used on all sub-expressions.  DEFAULT: false -->
    <!--<add key="UI.CodeRenderer.MaximizeBorders" value="true"/>-->

    <!-- Determines if braces should be tiny.  DEFAULT: false -->
    <!--<add key="UI.BlockVM.TinyBraces" value="true"/>-->

    <!-- Determines if braces should be hidden.  DEFAULT: false -->
    <!--<add key="UI.BlockVM.HideBraces" value="true"/>-->

    <!-- Determines if terminators should be hidden.  DEFAULT: false -->
    <!--<add key="UI.StatementVM.HideTerminators" value="true"/>-->

    <!-- Determines if statement argument parens should be hidden.  DEFAULT: false -->
    <!--<add key="UI.StatementVM.HideStatementParens" value="true"/>-->

    <!-- Determines if method parens should be hidden.  DEFAULT: false -->
    <!--<add key="UI.MethodDeclBaseVM.HideMethodParens" value="true"/>-->

    <!-- Determines if empty parens on 'new Type()' should be hidden.  DEFAULT: false -->
    <!--<add key="UI.NewObjectVM.HideEmptyParens" value="true"/>-->

    <!-- Determines if a 'while' with a null condition should be rendered as 'do'.  DEFAULT: false -->
    <!--<add key="UI.WhileVM.DisplayAsDoIfNullCondition" value="true"/>-->

    <!-- Determines if alternative symbols should be used to render operators.  DEFAULT: false -->
    <!--<add key="UI.OperatorVM.UseAlternativeDisplay" value="true"/>-->

    <!-- Determines if all comments should be hidden.  DEFAULT: false -->
    <!--<add key="UI.CommentBaseVM.HideDelimiters" value="true"/>-->

    <!-- Determines if all comment delimiters should be hidden.  DEFAULT: false -->
    <!--<add key="UI.CommentBaseVM.HideAll" value="true"/>-->

    <!-- Determines if comment text is rendered with a proportional font instead of a fixed font.  DEFAULT: false -->
    <!--<add key="UI.CommentVM.UseProportionalFont" value="true"/>-->

    <!-- Determines if documentation comment text is rendered with a proportional font instead of a fixed font.  DEFAULT: true -->
    <!--<add key="UI.DocCommentVM.UseProportionalFont" value="false"/>-->

    <!-- Use an alternate (non-XML) rendering for documentation comments if true.  DEFAULT: false -->
    <!--<add key="UI.DocCommentVM.UseAlternativeFormat" value="true"/>-->

    <!-- Determines if commas should be displayed in numeric values.  DEFAULT: false -->
    <!--<add key="UI.LiteralVM.CommasInNumerics" value="true"/>-->

    <!-- Determines if actual or alternative symbols should be shown in strings/chars instead of escape sequences.  DEFAULT: false -->
    <!--<add key="UI.LiteralVM.NoEscapes" value="true"/>-->

    <!-- Determines if spaces should be rendered with visible symbols in strings/chars.  DEFAULT: false -->
    <!--<add key="UI.LiteralVM.VisibleSpaces" value="true"/>-->

    <!-- Determines if quotes around strings should be hidden.  DEFAULT: false -->
    <!--<add key="UI.LiteralVM.HideQuotes" value="true"/>-->

  </Nova>
  
</configuration>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Common Development and Distribution License (CDDL)

Share

About the Author

KenBeckett
Software Developer (Senior)
United States United States
I've been writing software since the late 70's, currently focusing mainly on C#.NET. I also like to travel around the world, and I own a Chocolate Factory (sadly, none of my employees are oompa loompas).

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 2 Dec 2012
Article Copyright 2012 by KenBeckett
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid