Engine-Klasse
ScriptDocument
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Zusammenfassung
Methoden
MultiEditTextAsync(edits: {any}):Tuple |
Events
SelectionChanged(positionLine: number,positionCharacter: number,anchorLine: number,anchorCharacter: number):RBXScriptSignal |
ViewportChanged(startLine: number,endLine: number):RBXScriptSignal |
API-Referenz
Methoden
CloseAsync
Rückgaben
Code-Beispiele
ScriptDocument:CloseAsync
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
local scriptDocument
-- Finde das erste geöffnete Skriptdokument
for _, document in documents do
-- Die Befehlszeile kann nicht geschlossen werden, also wähle sie nicht aus
if not document:IsCommandBar() then
scriptDocument = document
break
end
end
if scriptDocument then
local success, err = scriptDocument:CloseAsync()
if success then
print(`Geschlossen {scriptDocument.Name}`)
else
warn(`Fehler beim Schließen von {scriptDocument.Name} weil: {err}`)
end
else
print("Keine offenen Skripte")
endEditTextAsync
ForceSetSelectionAsync
Rückgaben
Code-Beispiele
ScriptDocument:ForceSetSelectionAsync()
--!nocheck
-- Führen Sie den folgenden Code in der Eingabeaufforderung aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
-- Holen Sie sich den Text in der aktuellen Zeile des Cursors
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Zwingen Sie die gesamte Zeile Text auszuwählen
local success, err = scriptDocument:ForceSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("Auswahl festgelegt!")
else
print(`Auswahl konnte nicht festgelegt werden, weil: {err}`)
end
else
print("Keine Skripte geöffnet")
endGetLine
Parameter
| Standardwert: "nil" |
Rückgaben
Code-Beispiele
ScriptDocument.SelectionChanged und ScriptDocument:GetLine()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function(positionLine, positionCharacter, anchorLine, anchorCharacter)
print(`Ausgewählt: Zeile {positionLine}, Zeichen {positionCharacter}`)
print(`Anker: Zeile {anchorLine}, Zeichen {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Ausgewählter Zeileninhalt: {lineText}`)
end)
else
print("Keine Skripte geöffnet")
endGetLineCount
Rückgaben
Code-Beispiele
ScriptDocument:GetLineCount()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local lineCount = scriptDocument:GetLineCount()
print(`Das Skript hat {lineCount} Zeilen!`)
else
print("Keine Skripte geöffnet")
endGetScript
Rückgaben
Code-Beispiele
ScriptDocument:GetScript()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local openScript = scriptDocument:GetScript()
print(`Aktuell geöffnetes Skript: {openScript:GetFullName()}`)
else
print("Keine Skripte geöffnet")
endGetSelectedText
Rückgaben
Code-Beispiele
ScriptDocument:HatAusgewähltenText() und :GetSelectedText()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function()
if scriptDocument:HatAusgewähltenText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Aktuell ausgewählter Text: {selectedText}`)
else
print("Kein Text aktuell ausgewählt")
end
end)
else
print("Keine Skripte geöffnet")
endGetSelectionEnd
Rückgaben
Code-Beispiele
ScriptDocument:GetSelectionStart() und :GetSelectionEnd()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local startLine, startCharacter = scriptDocument:GetSelectionStart()
local endLine, endCharacter = scriptDocument:GetSelectionEnd()
print(`Auswahlstart: Zeile {startLine}, Char {startCharacter}`)
print(`Auswahlende: Zeile {endLine}, Char {endCharacter}`)
else
print("Keine Skripte geöffnet")
endGetSelectionStart
Rückgaben
Code-Beispiele
ScriptDocument:GetSelectionStart() und :GetSelectionEnd()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local startLine, startCharacter = scriptDocument:GetSelectionStart()
local endLine, endCharacter = scriptDocument:GetSelectionEnd()
print(`Auswahlstart: Zeile {startLine}, Char {startCharacter}`)
print(`Auswahlende: Zeile {endLine}, Char {endCharacter}`)
else
print("Keine Skripte geöffnet")
endGetText
Rückgaben
Code-Beispiele
ScriptDokument:GetText()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local text = scriptDocument:GetText()
print(`Skriptinhalte: {text}`)
else
print("Keine Skripte geöffnet")
endGetViewport
Rückgaben
Code-Beispiele
ScriptDocument:GetViewport
---!nocheck
--- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local firstLine, lastLine = scriptDocument:GetViewport()
print(`Derzeit werden die Zeilen {firstLine} bis {lastLine} angezeigt`)
else
print("Keine Skripte geöffnet")
endHasSelectedText
Rückgaben
Code-Beispiele
ScriptDocument:HatAusgewähltenText() und :GetSelectedText()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function()
if scriptDocument:HatAusgewähltenText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Aktuell ausgewählter Text: {selectedText}`)
else
print("Kein Text aktuell ausgewählt")
end
end)
else
print("Keine Skripte geöffnet")
endIsCommandBar
Rückgaben
Code-Beispiele
ScriptDocument:IsCommandBar()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if document:IsCommandBar() then
print("Befehlszeiledokument:", document)
end
endMultiEditTextAsync
RequestSetSelectionAsync
Rückgaben
Code-Beispiele
ScriptDocument:RequestSetSelectionAsync()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
-- Holen Sie sich den Text in der aktuellen Zeile des Cursors
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Erzwingen Sie die Auswahl der gesamten Zeile
local success, err = scriptDocument:RequestSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("Auswahl gesetzt!")
else
print(`Fehler beim Setzen der Auswahl: {err}`)
end
else
print("Keine Skripte geöffnet")
endEvents
SelectionChanged
ScriptDocument.SelectionChanged(
Code-Beispiele
ScriptDocument.SelectionChanged und ScriptDocument:GetLine()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function(positionLine, positionCharacter, anchorLine, anchorCharacter)
print(`Ausgewählt: Zeile {positionLine}, Zeichen {positionCharacter}`)
print(`Anker: Zeile {anchorLine}, Zeichen {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Ausgewählter Zeileninhalt: {lineText}`)
end)
else
print("Keine Skripte geöffnet")
endViewportChanged
Code-Beispiele
Verbindung zu ScriptDocument.ViewportChanged
--!nocheck
--[[
Um es auszuführen:
1. Stellen Sie sicher, dass die Ausgabeansicht geöffnet ist
2. Führen Sie den folgenden Code in der Befehlszeile aus
3. Scrollen Sie im geöffneten Skriptfenster nach oben und unten
Ausgabe von Print-Anweisungen des ViewportChanged-Ereignisses erscheint in der Ausgabe
]]
local Workspace = game:GetService("Workspace")
local ScriptEditorService = game:GetService("ScriptEditorService")
-- Erstellen Sie Text, der sich über viele Zeilen erstreckt
local dummyText = string.rep("-- Dummy Text\n", 60)
-- Erstellen Sie ein Skript, das den Dummy-Text enthält, und öffnen Sie es
local otherScript = Instance.new("Script")
otherScript.Source = dummyText
otherScript.Parent = Workspace
local success, err = ScriptEditorService:OpenScriptDocumentAsync(otherScript)
if not success then
warn(`Fehler beim Öffnen des Skripts, weil: {err}`)
return
end
-- Holen Sie sich eine Referenz zum geöffneten Skript
local scriptDocument = ScriptEditorService:FindScriptDocument(otherScript)
local function onViewportChanged(startLine: number, endLine: number)
print(`Viewport des Skripts geändert - Startzeile: {startLine}, Endzeile: {endLine}`)
end
-- Verbinden Sie das ViewportChanged-Ereignis mit der obigen Funktion, die die Start- und Endzeile des aktualisierten Viewports ausgibt
scriptDocument.ViewportChanged:Connect(onViewportChanged)