Clase de motor
ScriptDocument
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Resumen
Métodos
MultiEditTextAsync(edits: {any}):Tuple |
Eventos
SelectionChanged(positionLine: number,positionCharacter: number,anchorLine: number,anchorCharacter: number):RBXScriptSignal |
ViewportChanged(startLine: number,endLine: number):RBXScriptSignal |
Referencia API
Métodos
CloseAsync
Devuelve
Muestras de código
ScriptDocument:CloseAsync
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
local scriptDocument
-- Encuentra el primer documento de script abierto
for _, document in documents do
-- La Barra de Comandos no se puede cerrar, así que no la selecciones
if not document:IsCommandBar() then
scriptDocument = document
break
end
end
if scriptDocument then
local success, err = scriptDocument:CloseAsync()
if success then
print(`Cerrado {scriptDocument.Name}`)
else
warn(`No se pudo cerrar {scriptDocument.Name} porque: {err}`)
end
else
print("No hay scripts abiertos")
endEditTextAsync
ForceSetSelectionAsync
Devuelve
Muestras de código
ScriptDocument:ForceSetSelectionAsync()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
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
-- Obtener el texto en la línea actual del cursor
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Seleccionar forzadamente toda la línea de texto
local success, err = scriptDocument:ForceSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("¡Selección establecida!")
else
print(`Error al establecer la selección porque: {err}`)
end
else
print("No hay scripts abiertos")
endGetLine
Parámetros
| Valor predeterminado: "nil" |
Devuelve
Muestras de código
ScriptDocument.SelectionChanged y ScriptDocument:GetLine()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
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(`Seleccionado: Línea {positionLine}, Carácter {positionCharacter}`)
print(`Ancla: Línea {anchorLine}, Carácter {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Texto de la línea seleccionada: {lineText}`)
end)
else
print("No hay scripts abiertos")
endGetLineCount
Devuelve
Muestras de código
ScriptDocument:GetLineCount()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
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(`¡El script tiene {lineCount} líneas!`)
else
print("No hay scripts abiertos")
endGetScript
Devuelve
Muestras de código
ScriptDocument:GetScript()
--!nocheck
-- Ejecute el siguiente código en la Barra de Comandos mientras un script esté abierto
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(`Script actualmente abierto: {openScript:GetFullName()}`)
else
print("No hay scripts abiertos")
endGetSelectedText
Devuelve
Muestras de código
ScriptDocument:HasSelectedText() y :GetSelectedText()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script esté abierto
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:HasSelectedText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Texto actualmente seleccionado: {selectedText}`)
else
print("No hay texto actualmente seleccionado")
end
end)
else
print("No hay scripts abiertos")
endGetSelectionEnd
Devuelve
Muestras de código
ScriptDocument:GetSelectionStart() y :GetSelectionEnd()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
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(`Inicio de selección: Línea {startLine}, Carácter {startCharacter}`)
print(`Fin de selección: Línea {endLine}, Carácter {endCharacter}`)
else
print("No hay scripts abiertos")
endGetSelectionStart
Devuelve
Muestras de código
ScriptDocument:GetSelectionStart() y :GetSelectionEnd()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
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(`Inicio de selección: Línea {startLine}, Carácter {startCharacter}`)
print(`Fin de selección: Línea {endLine}, Carácter {endCharacter}`)
else
print("No hay scripts abiertos")
endGetText
Devuelve
Muestras de código
ScriptDocument:GetText()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
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(`Contenido del script: {text}`)
else
print("No hay scripts abiertos")
endGetViewport
Devuelve
Muestras de código
ScriptDocument:GetViewport
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
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(`Actualmente viendo las líneas {firstLine} a {lastLine}`)
else
print("No hay scripts abiertos")
endHasSelectedText
Devuelve
Muestras de código
ScriptDocument:HasSelectedText() y :GetSelectedText()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script esté abierto
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:HasSelectedText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Texto actualmente seleccionado: {selectedText}`)
else
print("No hay texto actualmente seleccionado")
end
end)
else
print("No hay scripts abiertos")
endIsCommandBar
Devuelve
Muestras de código
ScriptDocument:IsCommandBar()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if document:IsCommandBar() then
print("Documento de la barra de comandos:", document)
end
endMultiEditTextAsync
RequestSetSelectionAsync
Devuelve
Muestras de código
ScriptDocument:RequestSetSelectionAsync()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
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
-- Obtén el texto en la línea actual del cursor
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Forzar la selección de toda la línea de texto
local success, err = scriptDocument:RequestSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("¡Selección establecida!")
else
print(`No se pudo establecer la selección debido a: {err}`)
end
else
print("No hay scripts abiertos")
endEventos
SelectionChanged
ScriptDocument.SelectionChanged(
Muestras de código
ScriptDocument.SelectionChanged y ScriptDocument:GetLine()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
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(`Seleccionado: Línea {positionLine}, Carácter {positionCharacter}`)
print(`Ancla: Línea {anchorLine}, Carácter {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Texto de la línea seleccionada: {lineText}`)
end)
else
print("No hay scripts abiertos")
endViewportChanged
Muestras de código
Conectando a ScriptDocument.ViewportChanged
--!nocheck
--[[
Para ejecutar:
1. Asegúrate de que la vista de Salida esté abierta
2. Ejecuta el siguiente código en la Barra de Comandos
3. Desplázate hacia arriba y hacia abajo en la ventana del Script abierta
Las declaraciones de impresión del evento ViewportChanged aparecerán en la Salida
]]
local Workspace = game:GetService("Workspace")
local ScriptEditorService = game:GetService("ScriptEditorService")
-- Crear texto que abarca muchas líneas
local dummyText = string.rep("-- Dummy Text\n", 60)
-- Crear un script que contenga el texto ficticio y abrirlo
local otherScript = Instance.new("Script")
otherScript.Source = dummyText
otherScript.Parent = Workspace
local success, err = ScriptEditorService:OpenScriptDocumentAsync(otherScript)
if not success then
warn(`Error al abrir el script porque: {err}`)
return
end
-- Obtener una referencia al script abierto
local scriptDocument = ScriptEditorService:FindScriptDocument(otherScript)
local function onViewportChanged(startLine: number, endLine: number)
print(`Viewport del Script Cambiado - startLine: {startLine}, endLine: {endLine}`)
end
-- Conectar el evento ViewportChanged a la función anterior que imprime la línea de inicio y la línea final del viewport actualizado
scriptDocument.ViewportChanged:Connect(onViewportChanged)