UI: Search and read NS API docs in editor tab and documentation tab (#2163)

This commit is contained in:
catloversg
2025-06-01 13:53:20 +07:00
committed by GitHub
parent 98f6cc9554
commit 6a23c85e12
41 changed files with 3602 additions and 130 deletions
+22 -17
View File
@@ -1783,8 +1783,11 @@ export type Task = StudyTask | CompanyWorkTask | CreateProgramWorkTask | CrimeTa
/**
* Default value:
*
* - sourceFileOverrides: an empty Map
*
* - intelligenceOverride: undefined
*
* - All boolean options: false
*
* If you specify intelligenceOverride, it must be a non-negative integer.
@@ -1797,10 +1800,12 @@ export interface BitNodeOptions extends BitNodeBooleanOptions {
}
/**
* restrictHomePCUpgrade: The home computer's maximum RAM and number of cores are lower than normal. Max RAM: 128GB. Max
* Note:
*
* - restrictHomePCUpgrade: The home computer's maximum RAM and number of cores are lower than normal. Max RAM: 128GB. Max
* core: 1.
*
* disableSleeveExpAndAugmentation: Your Sleeves do not gain experience when they perform action. You also cannot buy
* - disableSleeveExpAndAugmentation: Your Sleeves do not gain experience when they perform action. You also cannot buy
* augmentations for them.
*
* @public
@@ -6128,91 +6133,91 @@ interface UserInterface {
*/
export interface NS {
/**
* Namespace for hacknet functions. Some of this API contains spoilers.
* Namespace for {@link Hacknet | hacknet} functions. Some of this API contains spoilers.
* @remarks RAM cost: 4 GB.
*/
readonly hacknet: Hacknet;
/**
* Namespace for bladeburner functions. Contains spoilers.
* Namespace for {@link Bladeburner | Bladeburner} functions. Contains spoilers.
* @remarks RAM cost: 0 GB
*/
readonly bladeburner: Bladeburner;
/**
* Namespace for codingcontract functions.
* Namespace for {@link CodingContract | coding contract} functions.
* @remarks RAM cost: 0 GB
*/
readonly codingcontract: CodingContract;
/**
* Namespace for formatting functions.
* Namespace for {@link Format | formatting} functions.
* @remarks RAM cost: 0 GB
*/
readonly format: Format;
/**
* Namespace for gang functions. Contains spoilers.
* Namespace for {@link Gang | gang} functions. Contains spoilers.
* @remarks RAM cost: 0 GB
*/
readonly gang: Gang;
/**
* Namespace for Go functions.
* Namespace for {@link Go | Go} functions.
* @remarks RAM cost: 0 GB
*/
readonly go: Go;
/**
* Namespace for sleeve functions. Contains spoilers.
* Namespace for {@link Sleeve | sleeve} functions. Contains spoilers.
* @remarks RAM cost: 0 GB
*/
readonly sleeve: Sleeve;
/**
* Namespace for stock functions.
* Namespace for {@link TIX | stock} functions.
* @remarks RAM cost: 0 GB
*/
readonly stock: TIX;
/**
* Namespace for formulas functions.
* Namespace for {@link Formulas | formulas} functions.
* @remarks RAM cost: 0 GB
*/
readonly formulas: Formulas;
/**
* Namespace for stanek functions. Contains spoilers.
* Namespace for {@link Stanek | Stanek} functions. Contains spoilers.
* @remarks RAM cost: 0 GB
*/
readonly stanek: Stanek;
/**
* Namespace for infiltration functions.
* Namespace for {@link Infiltration | infiltration} functions.
* @remarks RAM cost: 0 GB
*/
readonly infiltration: Infiltration;
/**
* Namespace for corporation functions. Contains spoilers.
* Namespace for {@link Corporation | corporation} functions. Contains spoilers.
* @remarks RAM cost: 0 GB
*/
readonly corporation: Corporation;
/**
* Namespace for user interface functions.
* Namespace for {@link UserInterface | user interface} functions.
* @remarks RAM cost: 0 GB
*/
readonly ui: UserInterface;
/**
* Namespace for singularity functions. Contains spoilers.
* Namespace for {@link Singularity | singularity} functions. Contains spoilers.
* @remarks RAM cost: 0 GB
*/
readonly singularity: Singularity;
/**
* Namespace for grafting functions. Contains spoilers.
* Namespace for {@link Grafting | grafting} functions. Contains spoilers.
* @remarks RAM cost: 0 GB
*/
readonly grafting: Grafting;
+1 -1
View File
@@ -186,7 +186,7 @@ function Root(props: IProps): React.ReactElement {
return;
}
// this is duplicate code with saving later.
if (ITutorial.isRunning && ITutorial.currStep === iTutorialSteps.TerminalTypeScript) {
if (ITutorial.isRunning && ITutorial.currStep === iTutorialSteps.TerminalEditScript) {
//Make sure filename + code properly follow tutorial
if (currentScript.path !== "n00dles.js") {
dialogBoxCreate("Don't change the script name for now.");
+13
View File
@@ -23,6 +23,9 @@ import { OptionsModal, OptionsModalProps } from "./OptionsModal";
import { useScriptEditorContext } from "./ScriptEditorContext";
import { NsApiDocumentationLink } from "../../ui/React/NsApiDocumentationLink";
import { CurrentKeyBindings, parseKeyCombinationsToString, ScriptEditorAction } from "../../utils/KeyBindingUtils";
import { DocumentationAutocomplete } from "../../Documentation/ui/DocumentationAutocomplete";
import { openDocumentationPopUp } from "../../Documentation/root";
import { openDocExternally } from "../../ui/React/Documentation";
type IStandaloneCodeEditor = monaco.editor.IStandaloneCodeEditor;
@@ -82,6 +85,16 @@ export function Toolbar({ editor, onSave, onRun }: IProps) {
Run
</Button>
</Tooltip>
<DocumentationAutocomplete
sx={{ marginRight: "10px" }}
onChange={(path, external) => {
if (external) {
openDocExternally(path);
return;
}
openDocumentationPopUp(path);
}}
/>
<Typography>
<NsApiDocumentationLink />
</Typography>