Table of Contents

Class SupportedLanguage

Namespace
RDCore.SDK.Workspace
Assembly
RDCore.SDK.dll

A language the platform serves: what it is called to a client, which files are written in it, and what the environment it runs in is like - which is what tells one dialect of the family from another.

public class SupportedLanguage
Inheritance
SupportedLanguage
Inherited Members

Remarks

The platform is one implementation of the MS-VBAL semantics for several members of the BASIC family (SupportedLanguages), and a language is the dialect table behind it: the pieces a dialect decides stay behind this type rather than being re-decided wherever they matter.

Constructors

SupportedLanguage(string, string, params string[])

Creates the definition of a language.

public SupportedLanguage(string id, string name, params string[] fileTypes)

Parameters

id string

The language identifier a client names the language by (languageId).

name string

What the language is called.

fileTypes string[]

The patterns of the files written in it.

Properties

FileTypes

The patterns of the files written in the language.

public string[] FileTypes { get; }

Property Value

string[]

FilterString

The patterns of the files written in the language, as a document filter pattern.

public string FilterString { get; }

Property Value

string

HasBarePrint

Whether a Print statement with no file number - Print "x" - is a statement of the language.

public bool HasBarePrint { get; init; }

Property Value

bool

Remarks

In VB6 it is the Print member of the form or report it is written in, so it exists only where there is one. A BASIC has it as its own: it writes to the output of the program.

In VBA Print is a reserved identifier: it is illegal as the name of anything, it has no semantics, and it is not a recognized statement inside a procedure. Only the Immediate window accepts a bare Print, where it writes what Debug.Print does - and the Immediate window is not procedure scope.

HasOptionExplicit

Whether the language has the Option Explicit directive (MS-VBAL §5.2.1.3), with which a module requires that every name it uses is declared.

public bool HasOptionExplicit { get; init; }

Property Value

bool

Remarks

VBA and VB6 do. A BASIC does not: a variable is whatever a line first assigns, which is what makes it a language to type in a line at a time, and a module of it cannot state a directive that it has no way to write. Whether a module states it is not something to have an opinion about, then.

Id

The language identifier a client names the language by (languageId).

public string Id { get; }

Property Value

string

ImplicitDeclarationScope

Where the variable that a reference to an undeclared name declares lives (MS-VBAL §5.6.10).

public ImplicitDeclarationScope ImplicitDeclarationScope { get; init; }

Property Value

ImplicitDeclarationScope

Remarks

Procedure - a local of the procedure - is VBA's and VB6's. Module is a BASIC's: a variable of the module, so that what one line assigns the next one reads.

Name

What the language is called.

public string Name { get; }

Property Value

string

Methods

ToString()

Returns a string that represents the current object.

public override string ToString()

Returns

string

A string that represents the current object.

ToTextDocumentSelector()

The selector of the documents written in the language.

public TextDocumentSelector ToTextDocumentSelector()

Returns

TextDocumentSelector