cleaned code and prefixed display text of directories when using the ls command to have an /
This commit is contained in:
@@ -4,6 +4,8 @@ class_name TerminalControls
|
|||||||
@onready var historyContainer = $MarginContainer/ScrollContainer/VBoxContainer
|
@onready var historyContainer = $MarginContainer/ScrollContainer/VBoxContainer
|
||||||
@onready var caret = $MarginContainer/ScrollContainer/VBoxContainer/Label/Caret
|
@onready var caret = $MarginContainer/ScrollContainer/VBoxContainer/Label/Caret
|
||||||
@onready var blink_timer = $MarginContainer/ScrollContainer/VBoxContainer/Label/CaretTimer
|
@onready var blink_timer = $MarginContainer/ScrollContainer/VBoxContainer/Label/CaretTimer
|
||||||
|
@onready var ruler: Label = $"caret-ruler"
|
||||||
|
@onready var scroll: ScrollContainer = $MarginContainer/ScrollContainer
|
||||||
@export var terminalLine: RichTextLabel
|
@export var terminalLine: RichTextLabel
|
||||||
|
|
||||||
var command: String
|
var command: String
|
||||||
@@ -46,6 +48,7 @@ func InputChar(input) -> void:
|
|||||||
UpdateCaretPos()
|
UpdateCaretPos()
|
||||||
await get_tree().create_timer(.01).timeout
|
await get_tree().create_timer(.01).timeout
|
||||||
reset_blink()
|
reset_blink()
|
||||||
|
|
||||||
func InputDelChar() -> void:
|
func InputDelChar() -> void:
|
||||||
if terminalLine.text.length() > ("user@work " + directory).length() + 1:
|
if terminalLine.text.length() > ("user@work " + directory).length() + 1:
|
||||||
terminalLine.text = terminalLine.text.left(-1)
|
terminalLine.text = terminalLine.text.left(-1)
|
||||||
@@ -70,8 +73,13 @@ func EnterCommand() -> void:
|
|||||||
currentDirData = GetDirAtPath(directory)
|
currentDirData = GetDirAtPath(directory)
|
||||||
if currentDirData is Dictionary:
|
if currentDirData is Dictionary:
|
||||||
var list = ""
|
var list = ""
|
||||||
|
var file: String
|
||||||
for key in currentDirData.keys():
|
for key in currentDirData.keys():
|
||||||
|
file = key
|
||||||
|
if file.ends_with(".txt"):
|
||||||
list += key + " "
|
list += key + " "
|
||||||
|
else:
|
||||||
|
list += key + "/ "
|
||||||
CreateHistoryEntry(list)
|
CreateHistoryEntry(list)
|
||||||
else:
|
else:
|
||||||
CreateHistoryEntry("error: Directory not found")
|
CreateHistoryEntry("error: Directory not found")
|
||||||
@@ -110,35 +118,16 @@ func EnterCommand() -> void:
|
|||||||
|
|
||||||
# --- History and FileSystem Helpers ---
|
# --- History and FileSystem Helpers ---
|
||||||
func CreateHistoryEntry(content: String) -> void:
|
func CreateHistoryEntry(content: String) -> void:
|
||||||
# var label = Label.new()
|
|
||||||
# label.text = content
|
|
||||||
# label.label_settings = LabelSettings.new()
|
|
||||||
# label.label_settings.font_size = 42
|
|
||||||
# label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART
|
|
||||||
# label.custom_minimum_size = Vector2(1400, 0)
|
|
||||||
#
|
|
||||||
#if terminalLine.text.length() > 200:
|
|
||||||
#for child in historyContainer.get_children():
|
|
||||||
#if child != terminalLine:
|
|
||||||
#child.queue_free()
|
|
||||||
# historyContainer.add_child(label)
|
|
||||||
# historyContainer.move_child(label, historyContainer.get_child_count() - 2)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var rtl = RichTextLabel.new()
|
var rtl = RichTextLabel.new()
|
||||||
rtl.bbcode_enabled = true
|
rtl.bbcode_enabled = true
|
||||||
rtl.fit_content = true # Important for VBoxContainer
|
rtl.fit_content = true
|
||||||
rtl.text = content
|
rtl.text = content
|
||||||
rtl.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART
|
rtl.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART
|
||||||
rtl.custom_minimum_size = Vector2(1400, 0)
|
rtl.custom_minimum_size = Vector2(1400, 0)
|
||||||
rtl.add_theme_font_size_override("normal_font_size", 42)
|
rtl.add_theme_font_size_override("normal_font_size", 42)
|
||||||
|
|
||||||
# Optional: Set a theme or font override here
|
|
||||||
# rtl.add_theme_font_size_override("normal_font_size", 42)
|
|
||||||
|
|
||||||
historyContainer.add_child(rtl)
|
historyContainer.add_child(rtl)
|
||||||
# Moves the entry above the input line
|
|
||||||
historyContainer.move_child(rtl, historyContainer.get_child_count() - 2)
|
historyContainer.move_child(rtl, historyContainer.get_child_count() - 2)
|
||||||
|
|
||||||
func ResolvePath(current: String, target: String) -> String:
|
func ResolvePath(current: String, target: String) -> String:
|
||||||
@@ -211,14 +200,12 @@ help : Show this menu
|
|||||||
-------------------------")
|
-------------------------")
|
||||||
|
|
||||||
func ScrollUp():
|
func ScrollUp():
|
||||||
var scroll: ScrollContainer = $MarginContainer/ScrollContainer
|
|
||||||
|
|
||||||
await get_tree().create_timer(.0001).timeout
|
await get_tree().create_timer(.0001).timeout
|
||||||
scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value - 100 )
|
scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value - 100 )
|
||||||
|
|
||||||
|
|
||||||
func ScrollDown():
|
func ScrollDown():
|
||||||
var scroll: ScrollContainer = $MarginContainer/ScrollContainer
|
|
||||||
|
|
||||||
await get_tree().create_timer(.0001).timeout
|
await get_tree().create_timer(.0001).timeout
|
||||||
scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value + 100 )
|
scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value + 100 )
|
||||||
@@ -226,19 +213,15 @@ func ScrollDown():
|
|||||||
|
|
||||||
|
|
||||||
func GetBottomScroll():
|
func GetBottomScroll():
|
||||||
var scroll: ScrollContainer = $MarginContainer/ScrollContainer
|
|
||||||
var scrollMax: float = scroll.get_v_scroll_bar().max_value
|
var scrollMax: float = scroll.get_v_scroll_bar().max_value
|
||||||
|
|
||||||
await get_tree().create_timer(.01).timeout
|
await get_tree().create_timer(.01).timeout
|
||||||
scroll.set_deferred("scroll_vertical", scrollMax)
|
scroll.set_deferred("scroll_vertical", scrollMax)
|
||||||
scroll.vertical_scroll_mode = ScrollContainer.SCROLL_MODE_SHOW_NEVER
|
|
||||||
#call_deferred("GetBottomScroll")
|
|
||||||
|
|
||||||
func UpdateCaretPos():
|
func UpdateCaretPos():
|
||||||
|
|
||||||
await get_tree().create_timer(.01).timeout
|
await get_tree().create_timer(.05).timeout
|
||||||
var visible_text = terminalLine.get_parsed_text()
|
var visible_text = terminalLine.get_parsed_text()
|
||||||
var ruler: Label = $"caret-ruler"
|
|
||||||
|
|
||||||
ruler.autowrap_mode =TextServer.AUTOWRAP_WORD_SMART
|
ruler.autowrap_mode =TextServer.AUTOWRAP_WORD_SMART
|
||||||
ruler.text = visible_text
|
ruler.text = visible_text
|
||||||
|
|||||||
Reference in New Issue
Block a user