i think ive seen mention of some people using ones like Ultraedit where you can macro/program them but that sounds more complicated to me, and i think the PB IDE is pretty good
or you could make your own text editor!?
pbnotepad.pb ...
Code:
Global gsFilename.s
XIncludeFile("pbnotepad.pbf")
XIncludeFile("helpers.pbi")
OpenDlg1()
Define event.i
Repeat ;main message loop
event = WaitWindowEvent()
Dlg1_Events (event)
Until event = #PB_Event_CloseWindow
End
pbnotepad.pbf ...
Code:
Enumeration FormWindow
#Dlg1
EndEnumeration
Enumeration FormGadget
#Editor1
EndEnumeration
Enumeration FormMenu
#mnuNew
#mnuOpen
#mnuSave
#mnuSaveAs
#mnuExit
#mnuAbout
EndEnumeration
Declare ResizeGadgetsDlg1()
Declare mnuAbout(Event)
Declare mnuOpen(Event)
Declare mnuSave(Event)
Declare mnuNew(Event)
Declare mnuSaveAs(Event)
Declare mnuExit(Event)
Procedure OpenDlg1(x = 0, y = 0, width = 568, height = 372)
OpenWindow(#Dlg1, x, y, width, height, "PBNotepad", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered)
CreateMenu(0, WindowID(#Dlg1))
MenuTitle("File")
MenuItem(#mnuNew, "New")
MenuItem(#mnuOpen, "Open...")
MenuItem(#mnuSave, "Save")
MenuItem(#mnuSaveAs, "Save As...")
MenuBar()
MenuItem(#mnuExit, "Exit")
MenuTitle("Help")
MenuItem(#mnuAbout, "About")
EditorGadget(#Editor1, 0, 0, 568, 350, #PB_Editor_WordWrap)
EndProcedure
Procedure ResizeGadgetsDlg1()
Protected FormWindowWidth, FormWindowHeight
FormWindowWidth = WindowWidth(#Dlg1)
FormWindowHeight = WindowHeight(#Dlg1)
ResizeGadget(#Editor1, 0, 0, FormWindowWidth - 0, FormWindowHeight - MenuHeight() - 0)
EndProcedure
Procedure Dlg1_Events(event)
Select event
Case #PB_Event_SizeWindow
ResizeGadgetsDlg1()
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
Case #mnuNew
mnuNew(EventMenu())
Case #mnuOpen
mnuOpen(EventMenu())
Case #mnuSave
mnuSave(EventMenu())
Case #mnuSaveAs
mnuSaveAs(EventMenu())
Case #mnuExit
mnuExit(EventMenu())
Case #mnuAbout
mnuAbout(EventMenu())
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
helpers.pbiCode:
Procedure SetMainTitle()
SetWindowTitle(#Dlg1, "PBNotepad - " + GetFilePart(gsFilename))
EndProcedure
Procedure mnuNew(eventid)
gsFilename = ""
SetGadgetText(#Editor1, "")
SetMainTitle()
EndProcedure
Procedure mnuOpen(eventid)
Protected sOpenfile.s = OpenFileRequester("Select file to open...", "", "", 0)
If sOpenfile <> ""
Protected hFile = ReadFile(#PB_Any, sOpenfile)
If hFile = 0
MessageRequester("Error", "Couldn't open file")
Else
Protected sBuf.s
sBuf = ReadString(hFile, #PB_Ascii | #PB_File_IgnoreEOL, -1)
CloseFile(hFile)
SetGadgetText(#Editor1, sBuf)
gsFilename = sOpenfile
SetMainTitle()
EndIf
EndIf
EndProcedure
Procedure SaveToFile(sFile.s)
Protected hFile = CreateFile(#PB_Any, sFile)
If hFile = 0
MessageRequester("Error", "Couldn't create file")
Else
WriteString(hFile, GetGadgetText(#Editor1), #PB_Ascii)
CloseFile(hFile)
gsFilename = sFile
EndIf
SetMainTitle()
EndProcedure
Procedure mnuSaveAs(eventid)
Protected sFile.s = SaveFileRequester("Save file as...", "", "", 0)
If sFile <> ""
SaveToFile(sFile)
EndIf
EndProcedure
Procedure mnuSave(eventid)
If gsFilename <> ""
SaveToFile(gsFileName)
Else
mnuSaveAs(eventid)
EndIf
EndProcedure
Procedure mnuExit(eventid)
End
EndProcedure
Procedure mnuAbout(eventid)
MessageRequester("PBNotepad", "Simple start to a basic text editor")
EndProcedure