Table of Contents

Class CParser

Namespace
Alternet.Syntax.Parsers.Lsp.Clangd
Assembly
Alternet.Syntax.Parsers.Clangd.v9.dll

Represents a class that performs syntax and lexical analysis of specified ANSI-C code text.

[ToolboxBitmap(typeof(CParser), "Images.CParser.Icon.bmp")]
public class CParser : LspParser, IComponent, IDisposable, ISyntaxParser, IParser, ILexer, INotify, IUpdate, IImport, ILspDocumentProvider
Inheritance
CParser
Implements
Derived

Examples

Here is how to declare a CParser and assign it to the edit control the from C# code:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        var parser = new Alternet.Syntax.Parsers.Lsp.Clangd.CParser();
        var edit = new Alternet.Editor.SyntaxEdit();
        edit.Parent = this;
        edit.Lexer = parser;

        string fileName = "myfile.c";
        if (System.IO.File.Exists(fileName))
        {
            parser.FileName = fileName;
            edit.LoadFile(fileName);
        }
    }
}

Here is how to declare a CParser and assign it to the edit control the Visual Basic code:

Partial Public Class Form1
    Inherits Form

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
        Dim parser = New Alternet.Syntax.Parsers.Lsp.Clangd.CParser()
        Dim edit = New Alternet.Editor.SyntaxEdit()
        edit.Parent = Me
        edit.Lexer = parser
        Dim fileName As String = "myfile.c"

        If System.IO.File.Exists(fileName) Then
            parser.FileName = fileName
            edit.LoadFile(fileName)
        End If
    End Sub
End Class

Remarks

CParser is a non-visual component designed to perform syntax highlighting for the ANSI-C language. This LangServer-based parser relies on the CLang Language server, which should be installed on the target machine to provide features like full syntax and analysis of the ANSI-C code.� When linked to the SyntaxEdit or TextEditor controls, this parser drives additional features such as code completion, code outlining, and underlying syntax errors and warnings.

Here are some of the essential features provided by the CParser:

  • Syntax Highlighting
  • IntelliSense (Code completion)
  • Code Outlining

Constructors

CParser()

Initializes a new instance of the CParser class with default settings.

CParser(IContainer)

Initializes a new instance of the CParser class with specified container.

Fields

DefaultCLangCodeCompletionChars

Represents a default collection of characters that initializes a code completion procedure when typing.

DefaultCLangDelimiters

Represents a default collection of delimiter characters.

DefaultCLangSyntaxOptions

Represents default set of flags determining syntax parsing and formatting behavior.

Properties

CaseSensitive

Gets or sets a boolean value that indicates whether SyntaxParser should perform case-sensitive analysis of its content.

Workspace

Methods

CreateRepository()

Creates ICodeCompletionRepository to perform code completion functionality for this parser.

CreateWorkspace()
IsCodeCompletionChar(char, byte, ref int)

Returns boolean value indicating that given character initializes a code completion procedure when typing.

ResetCodeCompletionChars()

Resets CodeCompletionChars to the default value.

ResetOptions()

Resets Options to the default value.

ShouldSerializeCodeCompletionChars()

Indicates whether the CodeCompletionChars property should be persisted.

ShouldSerializeOptions()

Indicates whether the Options property should be persisted.