<commit_before>// Welcome to the FourSlash syntax guide!

// A line in the source text is indicated by four slashes (////)
// Tip: Hit Ctrl-K Ctrl-C Ctrl-K Ctrl-C to prefix-slash any selected block of text in Visual Studio
//// This is a line in the source text!
// Files are terminated by any entirely blank line (e.g.
// interspersed //-initiated comments are allowed)

// You can indicate a 'marker' with /**/
//// function./**/
// ... goTo.marker();

// Optionally, markers may have names:
//// function.go(/*1*/x, /*2*/y);
// goTo.marker('1');
// Marker names may consist of any alphanumeric characters

// File metadata must occur directly before the first line of source text
// and is indicated by an @ symbol:
// @Filename: lib.d.ts
//// this is the first line of my file

// Global options may appear anywhere
// @Module: Node
// @Target: ES5

// In the imperative section, you can write any valid TypeScript code. If
// you need help finding a something in Intellisense, you can
// type 'fs.' as an alternate way of accessing the top-level objects
// (e.g. 'fs.goTo.eof();')

declare var FourSlash;

enum IncrementalEditValidation {
    None = FourSlash.IncrementalEditValidation.None,
    SyntacticOnly = FourSlash.IncrementalEditValidation.SyntacticOnly,
    Complete = FourSlash.IncrementalEditValidation.Complete
}

module FourSlashInterface {
    declare var FourSlash;

    export interface Marker {
        fileName: string;
        position: number;
        data?: any;
    }

    export interface Range {
        fileName: string;
        start: number;
        end: number;
        marker?: Marker;
    }

    export interface TextSpan {
        start: number;
        end: number;
    }

    export class test {
        public markers(): Marker[] {
            return FourSlash.currentTestState.getMarkers();
        }

        public ranges(): Range[] {
            return FourSlash.currentTestState.getRanges();
        }
    }

    export class diagnostics {
        public validateTypesAtPositions(...positions: number[]) {
            return FourSlash.currentTestState.verifyTypesAgainstFullCheckAtPositions(positions);
        }

        public setEditValidation(validation: IncrementalEditValidation) {
            FourSlash.currentTestState.editValidation = validation;
        }
    }

    export class goTo {
        // Moves the caret to the specified marker,
        // or the anonymous marker ('/**/') if no name
        // is given
        public marker(name?: string) {
            FourSlash.currentTestState.goToMarker(name);
        }

        public bof() {
            FourSlash.currentTestState.goToBOF();
        }<commit_msg>Add method for pulling on a type at the current position<commit_after>// Welcome to the FourSlash syntax guide!

// A line in the source text is indicated by four slashes (////)
// Tip: Hit Ctrl-K Ctrl-C Ctrl-K Ctrl-C to prefix-slash any selected block of text in Visual Studio
//// This is a line in the source text!
// Files are terminated by any entirely blank line (e.g.
// interspersed //-initiated comments are allowed)

// You can indicate a 'marker' with /**/
//// function./**/
// ... goTo.marker();

// Optionally, markers may have names:
//// function.go(/*1*/x, /*2*/y);
// goTo.marker('1');
// Marker names may consist of any alphanumeric characters

// File metadata must occur directly before the first line of source text
// and is indicated by an @ symbol:
// @Filename: lib.d.ts
//// this is the first line of my file

// Global options may appear anywhere
// @Module: Node
// @Target: ES5

// In the imperative section, you can write any valid TypeScript code. If
// you need help finding a something in Intellisense, you can
// type 'fs.' as an alternate way of accessing the top-level objects
// (e.g. 'fs.goTo.eof();')

declare var FourSlash;

enum IncrementalEditValidation {
    None = FourSlash.IncrementalEditValidation.None,
    SyntacticOnly = FourSlash.IncrementalEditValidation.SyntacticOnly,
    Complete = FourSlash.IncrementalEditValidation.Complete
}

module FourSlashInterface {
    declare var FourSlash;

    export interface Marker {
        fileName: string;
        position: number;
        data?: any;
    }

    export interface Range {
        fileName: string;
        start: number;
        end: number;
        marker?: Marker;
    }

    export interface TextSpan {
        start: number;
        end: number;
    }

    export class test {
        public markers(): Marker[] {
            return FourSlash.currentTestState.getMarkers();
        }

        public ranges(): Range[] {
            return FourSlash.currentTestState.getRanges();
        }
    }

    export class diagnostics {
        public validateTypeAtCurrentPosition() {
            return this.validateTypesAtPositions(FourSlash.currentTestState.currentCaretPosition);
        }

        public validateTypesAtPositions(...positions: number[]) {
            return FourSlash.currentTestState.verifyTypesAgainstFullCheckAtPositions(positions);
        }

        public setEditValidation(validation: IncrementalEditValidation) {
            FourSlash.currentTestState.editValidation = validation;
        }
    }

    export class goTo {
        // Moves the caret to the specified marker,
        // or the anonymous marker ('/**/') if no name
        // is given
        public marker(name?: string) {
            FourSlash.currentTestState.goToMarker(name);
        }

        public bof() {
            FourSlash.currentTestState.goToBOF();
        }
{'fraction_non_alphanumeric': 0.10180505415162455, 'fraction_numerical': 0.001444043321299639, 'mean_word_length': 2.4783427495291903, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5089571', 'n_tokens_mistral': 1548, 'n_tokens_neox': 1492, 'n_words': 508}