@eagleoutice/flowr - v2.15.8
    Preparing search index...

    Interface FlowrConfig

    The configuration file format for flowR.

    interface FlowrConfig {
        abstractInterpretation: {
            dataFrame: {
                maxColNames: number;
                readLoadedData: { maxReadLines: number; readExternalFiles: boolean };
            };
            followCalls: boolean;
            wideningThreshold: number;
        };
        defaultEngine?: "r-shell"
        | "tree-sitter";
        defaultPlugins: ConfigPlugin<string>[];
        engines: EngineConfig[];
        gas: FlowrGasConfig;
        ignoreLoadCalls: boolean;
        ignoreSourceCalls: boolean;
        incremental: {
            alwaysIncremental: boolean;
            parsing: {
                activated: boolean;
                heuristics: {
                    activated: boolean;
                    alwaysWithEdits: boolean;
                    bytesFrom: number;
                    linesFrom: number;
                    minFiles: number;
                    mtime: boolean;
                };
            };
        };
        inputSources?: {
            cmdline?: string[];
            const?: string[];
            dconst?: string[];
            ffi?: string[];
            file?: string[];
            glob?: string[];
            lang?: string[];
            linkedEntryPoints?: { argIdx: ...; argName: ...; call: ...; params: ... }[];
            linkedObjects?: {
                declaredBy?: ...;
                fields?: ...;
                name: ...;
                requires?: ...;
                type: ...;
                withParams?: ...;
            }[];
            narrowing?: { argIdx?: ...; argName?: ...; call: ... }[];
            net?: string[];
            options?: string[];
            param?: string[];
            pure?: string[];
            rand?: string[];
            scope?: string[];
            system?: string[];
            tempfile?: string[];
            unknown?: string[];
            user?: string[];
        };
        linter: { disabledRules: string[] };
        logLevel?:
            | "debug"
            | "silly"
            | "trace"
            | "info"
            | "warn"
            | "error"
            | "fatal";
        project: {
            assumeImplicitEcho?: boolean;
            basePackages?: string[];
            classification?: {
                notebookExtensions?: (...)[];
                shinyDescriptionTypes?: (...)[];
                shinyEntryFiles?: (...)[];
                shinyUsagePattern?: string;
            };
            discovery?: { full?: boolean; ignore?: (...)[]; perKind?: Partial<(...)> };
            failOnInaccessiblePath?: boolean;
            implicitSources?: string[];
            resolveUnknownPathsOnDisk: boolean;
            useProjectType?: ProjectKind;
        };
        repl: {
            autoUseFileProtocol?: boolean;
            dfProcessorHeat: boolean;
            hints: boolean;
            plugins: ConfigPlugin<string>[];
            queryStats?: boolean;
            quickStats: boolean;
            showPlugins?: boolean;
        };
        semantics: {
            environment: {
                overwriteBuiltIns: {
                    definitions: BuiltInDefinition<(...)>[];
                    loadDefaults?: boolean;
                };
            };
        };
        solver: {
            assumeAttachedPackages?: string[];
            evalStrings: boolean;
            instrument: {
                dataflowExtractors?: (
                    extractor: DataflowProcessors<(...)>,
                    ctx: FlowrAnalyzerContext,
                ) => DataflowProcessors<(...)>;
            };
            resolveSource?: FlowrLaxSourcingOptions;
            sigdb: {
                additionalPaths?: string[];
                assumedRVersion?: string;
                autoSync?: boolean;
                blobCacheBudgetMb?: number;
                downloadRepo?: string;
                eagerlyLoad: boolean;
                eagerlyLoadExports: boolean;
                enabled: boolean;
                installedLibrary?: {
                    enabled: boolean;
                    maxDepth?: (...)
                    | (...);
                    packages?: (...) | (...);
                    paths?: (...) | (...);
                    useEnvironment?: (...) | (...) | (...);
                    useProjectLibrary?: (...) | (...) | (...);
                };
                linkBaseR: boolean;
                linkBaseRCalls?: boolean;
                linkDescriptionDependencies: boolean;
                linkPackageCalls?: boolean;
                loadProjectDependencies: boolean;
                versionOverrides?: Record<string, string>;
                versionSelection?: VersionSelection;
                warmInBackground?: boolean;
            };
            slicer?: { autoExtend?: boolean; threshold?: number };
            trackEnvironments: boolean;
            transitiveSideEffectRounds?: number;
            variables: VariableResolve;
            versionManagement?: { linkedVersionGroups?: (...)[] };
        };
        specializeConfig?: Partial<Record<ProjectKind, SpecializeConfigEntry>>;
    }
    Index
    abstractInterpretation: {
        dataFrame: {
            maxColNames: number;
            readLoadedData: { maxReadLines: number; readExternalFiles: boolean };
        };
        followCalls: boolean;
        wideningThreshold: number;
    }
    defaultEngine?: "r-shell" | "tree-sitter"

    The default engine to use. If undefined, an arbitrary one from engines is used.

    defaultPlugins: ConfigPlugin<string>[]
    engines: EngineConfig[]

    Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

    Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

    ignoreLoadCalls: boolean
    ignoreSourceCalls: boolean
    incremental: {
        alwaysIncremental: boolean;
        parsing: {
            activated: boolean;
            heuristics: {
                activated: boolean;
                alwaysWithEdits: boolean;
                bytesFrom: number;
                linesFrom: number;
                minFiles: number;
                mtime: boolean;
            };
        };
    }
    inputSources?: {
        cmdline?: string[];
        const?: string[];
        dconst?: string[];
        ffi?: string[];
        file?: string[];
        glob?: string[];
        lang?: string[];
        linkedEntryPoints?: { argIdx: ...; argName: ...; call: ...; params: ... }[];
        linkedObjects?: {
            declaredBy?: ...;
            fields?: ...;
            name: ...;
            requires?: ...;
            type: ...;
            withParams?: ...;
        }[];
        narrowing?: { argIdx?: ...; argName?: ...; call: ... }[];
        net?: string[];
        options?: string[];
        param?: string[];
        pure?: string[];
        rand?: string[];
        scope?: string[];
        system?: string[];
        tempfile?: string[];
        unknown?: string[];
        user?: string[];
    }

    Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

    Type Declaration

    • Optionalcmdline?: string[]
    • Optionalconst?: string[]
    • Optionaldconst?: string[]
    • Optionalffi?: string[]
    • Optionalfile?: string[]
    • Optionalglob?: string[]
    • Optionallang?: string[]
    • OptionallinkedEntryPoints?: { argIdx: ...; argName: ...; call: ...; params: ... }[]

      Calls that hand a function to a framework, which then binds linkedObjects to its parameters by position.

    • OptionallinkedObjects?: {
          declaredBy?: ...;
          fields?: ...;
          name: ...;
          requires?: ...;
          type: ...;
          withParams?: ...;
      }[]

      Objects provided by a framework rather than by the code itself, like shiny's input.

    • Optionalnarrowing?: { argIdx?: ...; argName?: ...; call: ... }[]

      Functions whose result is bounded by one of their arguments (classified by that argument alone).

    • Optionalnet?: string[]
    • Optionaloptions?: string[]
    • Optionalparam?: string[]
    • Optionalpure?: string[]

      Functions which are considered to be pure (i.e., deterministic, trusted, safe, idempotent on the lub of the input types)

    • Optionalrand?: string[]
    • Optionalscope?: string[]
    • Optionalsystem?: string[]
    • Optionaltempfile?: string[]
    • Optionalunknown?: string[]
    • Optionaluser?: string[]
    linter: { disabledRules: string[] }
    logLevel?: "debug" | "silly" | "trace" | "info" | "warn" | "error" | "fatal"
    project: {
        assumeImplicitEcho?: boolean;
        basePackages?: string[];
        classification?: {
            notebookExtensions?: (...)[];
            shinyDescriptionTypes?: (...)[];
            shinyEntryFiles?: (...)[];
            shinyUsagePattern?: string;
        };
        discovery?: { full?: boolean; ignore?: (...)[]; perKind?: Partial<(...)> };
        failOnInaccessiblePath?: boolean;
        implicitSources?: string[];
        resolveUnknownPathsOnDisk: boolean;
        useProjectType?: ProjectKind;
    }

    Type Declaration

    • OptionalassumeImplicitEcho?: boolean

      Whether the top level's visible results count as an output (the print category); off by default for a ProjectKind.Package, whose top level runs at install time.

    • OptionalbasePackages?: string[]

      The packages considered part of R itself; if unset, flowR derives them (for the assumed R version) from the signature database via baseRPackages.

    • Optionalclassification?: {
          notebookExtensions?: (...)[];
          shinyDescriptionTypes?: (...)[];
          shinyEntryFiles?: (...)[];
          shinyUsagePattern?: string;
      }
      • OptionalnotebookExtensions?: (...)[]

        File extensions marking a notebook (default ipynb, rmd, rmarkdown, qmd, rnw).

      • OptionalshinyDescriptionTypes?: (...)[]

        DESCRIPTION Type: values that mark a shiny app (default shiny, shiny-app, shinyapp).

      • OptionalshinyEntryFiles?: (...)[]

        File names a shiny app is assembled from (default app.R, ui.R, server.R, global.R).

      • OptionalshinyUsagePattern?: string
    • Optionaldiscovery?: { full?: boolean; ignore?: (...)[]; perKind?: Partial<(...)> }
    • OptionalfailOnInaccessiblePath?: boolean
    • OptionalimplicitSources?: string[]
    • resolveUnknownPathsOnDisk: boolean
    • OptionaluseProjectType?: ProjectKind
    repl: {
        autoUseFileProtocol?: boolean;
        dfProcessorHeat: boolean;
        hints: boolean;
        plugins: ConfigPlugin<string>[];
        queryStats?: boolean;
        quickStats: boolean;
        showPlugins?: boolean;
    }

    Type Declaration

    • OptionalautoUseFileProtocol?: boolean

      Automatically use the file protocol for inputs that look like paths (default true)

    • dfProcessorHeat: boolean
    • hints: boolean

      Whether to show dim inline hints (e.g. :help) on the empty prompt; automatically disabled on non-interactive terminals

    • plugins: ConfigPlugin<string>[]
    • OptionalqueryStats?: boolean

      Whether :query closes with the line stating how long the queries took (default true, :query* never prints it)

    • quickStats: boolean
    • OptionalshowPlugins?: boolean

      Whether :version grays out the plugins that did not activate during the last analysis (default false)

    semantics: {
        environment: {
            overwriteBuiltIns: {
                definitions: BuiltInDefinition<(...)>[];
                loadDefaults?: boolean;
            };
        };
    }
    solver: {
        assumeAttachedPackages?: string[];
        evalStrings: boolean;
        instrument: {
            dataflowExtractors?: (
                extractor: DataflowProcessors<(...)>,
                ctx: FlowrAnalyzerContext,
            ) => DataflowProcessors<(...)>;
        };
        resolveSource?: FlowrLaxSourcingOptions;
        sigdb: {
            additionalPaths?: string[];
            assumedRVersion?: string;
            autoSync?: boolean;
            blobCacheBudgetMb?: number;
            downloadRepo?: string;
            eagerlyLoad: boolean;
            eagerlyLoadExports: boolean;
            enabled: boolean;
            installedLibrary?: {
                enabled: boolean;
                maxDepth?: (...)
                | (...);
                packages?: (...) | (...);
                paths?: (...) | (...);
                useEnvironment?: (...) | (...) | (...);
                useProjectLibrary?: (...) | (...) | (...);
            };
            linkBaseR: boolean;
            linkBaseRCalls?: boolean;
            linkDescriptionDependencies: boolean;
            linkPackageCalls?: boolean;
            loadProjectDependencies: boolean;
            versionOverrides?: Record<string, string>;
            versionSelection?: VersionSelection;
            warmInBackground?: boolean;
        };
        slicer?: { autoExtend?: boolean; threshold?: number };
        trackEnvironments: boolean;
        transitiveSideEffectRounds?: number;
        variables: VariableResolve;
        versionManagement?: { linkedVersionGroups?: (...)[] };
    }
    specializeConfig?: Partial<Record<ProjectKind, SpecializeConfigEntry>>

    Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.