External editor: C# and text files
Separate C# settings, arguments, space-containing paths and line numbering.
For C#, choose an external editor under Editor → Editor Settings → Dotnet → Editor → External Editor. Text Editor → External controls the general text-file handler; it does not replace the separate C# IDE selection.
Start with a Reckfell 1.0.0 project whose .csproj already builds. Opening a .cs file elsewhere does not create a project, configure the SDK or start a debugger.
Configure the C# editor
- Open Editor Settings and search for
dotnet/editor/external_editor. - Select an installed IDE. The current Windows integration has distinct Visual Studio, Visual Studio Code and VSCodium, JetBrains Rider and Custom entries. An entry does not establish that the application is installed or configured.
- Open the project
.slnor.csprojin the IDE, rather than an isolated file. Wait for dependency restore and check the build. - Return to Reckfell and open an Entity script or a build error. Check that it opens a file from this project, then test navigation using an error with a known line number.
- Save the correction, build and run again. Saving source does not prove that the engine loaded an updated C# assembly.
Disabled means no separate C# integration override for file opening. General external-editor settings or the built-in handler can then apply. This does not disable C# or project builds.
The built-in VS Code/VSCodium provider constructs project and position arguments itself. Do not paste a generic Text Editor → External template into it. Executable discovery uses the environment available to the editor; a command found in another terminal does not establish that the Reckfell process has the same PATH.
Custom: your own file-opening program
With Custom, configure:
| Setting | Value |
|---|---|
dotnet/editor/custom_exec_path | Executable program. Do not append arguments here. |
dotnet/editor/custom_exec_path_args | Argument template. Start with {file} for the first test. |
Supported substitutions:
| Token | Content |
|---|---|
{project} | Absolute project directory. |
{file} | Absolute file path. |
{line} | Line number received by the handler. |
{col} | Column number received by the handler. |
Arguments are split before path substitution. Thus {file} remains one argument even for C:/Games with spaces/Project/Player Character.cs. Double quotes group parts of an argument in the template. If {file} is absent, the file path is appended automatically. Do not assume arbitrary tokens: {unknown} remains literal text.
Position numbering differs between handlers. In the checked C# Custom source branch, {line} and {col} are inserted without adding one. The built-in VS Code provider adds one for its goto command; the general Text Editor handler also performs its own conversion. Copying templates between these settings does not guarantee identical navigation. For a program expecting one-based positions, use its built-in provider or a wrapper with explicit conversion. Keep {file} for Custom opening without line navigation.
This is an argument template, not a shell command: do not expect Reckfell's handler to process &&, redirections or shell variables.
General external editor for text files
Open Editor Settings → Text Editor → External for general text resources:
- Enable Use External Editor.
- Set the file-opening program in Exec Path.
- Start Exec Flags with
{file}. Add complex arguments according to the program's documentation and test a path containing spaces. - Open a project file and confirm that you are editing the intended copy.
If the general program fails to launch, this handler can return to the internal editor and report an error. That does not promise identical fallback for every dedicated C# provider.
Saving, reloading and debugging are separate
text_editor/behavior/files/auto_reload_scripts_on_external_change controls rereading open files in the built-in editor. Even with automatic reload, an unsaved local buffer can prompt a version choice. Save or deliberately set aside your edits first; do not overwrite a buffer merely to synchronize it.
Rereading text is not C# compilation. Building, loading a new assembly, attaching a .NET debugger and stopping at a breakpoint require separate checks. A launch.json with an invented reckfell type does not create a debug adapter. This page does not promise a ready-made IDE extension, LSP/DAP connection or C# debugging through general editor ports.
Diagnose failures
| Symptom | Check |
|---|---|
| C# opens in the wrong program | Check dotnet/editor/external_editor first, then general Text Editor → External. |
| File opens without type assistance | Open the project .sln/.csproj; check restore and C# build. A single file lacks project context. |
| Program not found | Check the executable and Reckfell process environment. Keep Exec Path separate from arguments. |
| Wrong line opens | Check the specific provider and its numbering. C# Custom and general Text Editor are not identical. |
| Space-containing path splits | Do not assemble a shell command in the executable field; check the template and actual program arguments. |
| Old code runs after saving | Check the C# build result and restart/reload of the assembly. |
Verification limits
The installed headless editor verified the presence and types of separate C# and general-editor settings. The exact Custom argument-parser body was extracted from current C# integration source, compiled with the SDK and exercised for spaces, quoting, positions and substitutions. This tests a source branch, not an installed IDE launch. User settings were not changed; external processes, debugger/LSP/DAP, physical clicks and other platforms were not verified.