It is currently Tue Oct 24, 2017 3:25 am

All times are UTC + 1 hour




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: Just another wish list
PostPosted: Wed Mar 01, 2006 10:31 am 
Offline
Addict
Addict
User avatar

Joined: Tue Jul 22, 2003 5:02 pm
Posts: 1530
Location: In a long distant galaxy
Hello PB team,

I've some wishes for the future of the official IDE :

1/
Hexa Viewer : Add some search features.

2/
Constants explorer : Add the possibility to find a constant by its value (reverse mode).

3/
Record / Play macros for repetitive modifications.

4/
A new DIFF feature like this one (PSPAD) :
Image

5/
Right Panel : Add a monitor for counting variables/arrays/linkedlist/functions occurences like this one (PSPAD) :
Image

6/
Editor : A fullscreen view (no toolbar, no panel, just the editor and the menu) to increase visibility in some case.

7/
Code Templates: Add the ability to share the 'template file' between more than one computer. I mean that if i add a template on my session/computer, other people (LAN connected) in my company can also access them for better productivity.

8/
Like the existing ASCII table, but an UNICODE one.

9/
Color Picker : Add an option for pasting RRGGBBAA color format (Alpha)

10/
Compiler : Add an option for auto-declaring functions.

11/
Menu > File > New : A project wizard like the one in DevC++ in which the user can specify the type of project : Console/Application/DLL/Wrapper. Thus, the editor can open an appropriate template for a painless and standard start.

Pfffff...
Hope you'll think these ideas are really usefull and not too hard to implement. :roll:

And a great thank you for all the hard work you did on the IDE.

_________________
No programming language is perfect. There is not even a single best language.
There are only languages well suited or perhaps poorly suited for particular purposes. Herbert Mayer


Top
 Profile  
Reply with quote  
 Post subject: Re: Just another wish list
PostPosted: Thu Mar 16, 2017 8:16 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Fri Jan 28, 2005 11:53 pm
Posts: 105
Location: Otterloh
At least 1+ for a diff function.

_________________
Stoh wis, kiek wiet, rög di.

ANSI X3.60-1978 "For minimal BASIC" !!!
ANSI X3.113-1987 "Programming Languages Full BASIC" !!!
ISO xxxxx "Purebasic Programming Language" - draft ???


Top
 Profile  
Reply with quote  
 Post subject: Re: Just another wish list
PostPosted: Thu Mar 16, 2017 8:17 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Mon Oct 21, 2013 5:21 pm
Posts: 139
Location: France (Al's Nudie bar!)
11 years later ?!!! OMG !!!!! :)

_________________
http://majikeyric.free.fr


Top
 Profile  
Reply with quote  
 Post subject: Re: Just another wish list
PostPosted: Thu Mar 16, 2017 8:29 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Sat Feb 13, 2010 3:45 pm
Posts: 573
majikeyric wrote:
11 years later ?!!! OMG !!!!! :)
:mrgreen: :mrgreen: :mrgreen:

langinagel wrote:
At least 1+ for a diff function.
Tools > Compare Files/Folders :lol:

_________________
sorry for my bad english


Top
 Profile  
Reply with quote  
 Post subject: Re: Just another wish list
PostPosted: Thu Mar 16, 2017 9:46 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Wed Feb 01, 2012 3:30 pm
Posts: 621
Location: Nottinghamshire UK
Hi Well here`s a constant viewer with reverse look up via number also double rmb click to search the net at the current constant. Constant.txt file is for pb v5.60.

Does that make two lol :). constant.txt list to large. https://www.dropbox.com/s/mgwhp1s1qng5968/Constants.txt?dl=0

zebuddi.

Image

Code:
EnableExplicit


CompilerIf #PB_Compiler_Thread = 0
   MessageRequester("Compiler Options", "Please CheckMark (Create Thread Safe) in the Compiler Options")
   End
CompilerEndIf


;{- Enumerations / DataSections
;{ Windows
Enumeration
   #Window_Main
EndEnumeration
;}
;{ Gadgets
Enumeration
   #ListIcon_procs
   #String_Search
   #StatusBar_Window
   #ListIcon
   #checkbox
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Structure nslist
   name.s
   value.s
   List procs.s()
EndStructure

Structure condata
   constant.s
   List procs.s()
EndStructure

Global NewList fileString.s()
Global NewList condata.condata()

Global NewList  nslist.nslist() ; track from  file on disk NSList.txt
Global title$ = "Pure Constant Finder"

Procedure Do_AssoProcData(List fileString.s(), List condata.condata())
   Protected a$
   If ReadFile(0, "constants.txt")
      While Not Eof(0)
         a$ = ReadString(0 ,#PB_Ascii)
         If Left(a$, 10) = "Migration_"
            a$ = "Possibly Depricated or Changed - See Current PureBasic Manual For Latest Info"
         EndIf   
         AddElement(fileString())
         fileString() = a$
      Wend   
      CloseFile(0)
   EndIf
   
   With condata()
      ForEach fileString()
         If Left(fileString(), 4) = "#PB_"
            AddElement(condata())
            \constant = fileString()
         Else
            AddElement(condata())
            AddElement(\procs())
            \procs() = fileString()
         EndIf
      Next
   EndWith    
EndProcedure

Procedure.s _FormatNumber(number.i)
   Protected s.s=Str(number), i
   i=Len(s)
   While i>3
      i-3
      s=InsertString(s,",",i+1)
   Wend
   ProcedureReturn s
EndProcedure

Procedure  do_list() ;  parse file names.txt and fill nslist structured linkedlist
   Protected a$, p
   
   If ReadFile(0,"C:\Users\Dufus\AppData\Roaming\PureBasic\tools\Constants.txt")
;        MessageRequester("",GetCurrentDirectory()+"Constants.txt")
      With nslist()
         While Eof(0)=0
            a$=ReadString(0,ReadStringFormat(0))
            p=FindString(a$," = ")
            AddElement(nslist())
            \name=Left(a$,p-1)
            \value=Right(a$,(Len(a$)-(p+2)))
         Wend
      EndWith
      CloseFile(0)
   EndIf
EndProcedure

Procedure OpenWindow_Main()
   If OpenWindow(#Window_Main, 450, 32, 497, 573, title$, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
      If CreateStatusBar(#StatusBar_Window, WindowID(#Window_Main))
         AddStatusBarField(350)
         AddStatusBarField(147)
      EndIf

      ListIconGadget(#ListIcon, 0, 0, 497, 325, "Nb", 60, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
      AddGadgetColumn(#ListIcon,2,"Constant",237)
      AddGadgetColumn(#ListIcon,3,"value",230)
      GadgetToolTip(#ListIcon,"Double Right Click For Web Search")
      SetGadgetColor(#ListIcon,  #PB_Gadget_LineColor, $D3D3D3 )
      ListIconGadget(#ListIcon_procs, 0, 346, 497, 180, "Nb",60, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
      AddGadgetColumn(#ListIcon_procs,1,"PB Associated Procedures",437)
      GadgetToolTip(#ListIcon_procs,"Double left Click For Web Search")
      SetGadgetColor(#ListIcon_procs,  #PB_Gadget_LineColor, $D3D3D3 )
      CheckBoxGadget(#checkbox, 420, 326, 70, 20,"#PB Only")
      StringGadget(#String_Search, 0, 525, 497, 25, "")
      SetActiveGadget(#String_Search)
      SetGadgetColor(#ListIcon,#PB_Gadget_BackColor,$80FFFF)
      SetGadgetColor(#ListIcon_procs,#PB_Gadget_BackColor,$80FFFF)
      SetGadgetColor(#String_Search,#PB_Gadget_BackColor, $1FF6F5)
      StickyWindow(#Window_Main , #True)
   EndIf
EndProcedure

Procedure.b IsNumeric(string.s)
   If Val(String) > 0
      ProcedureReturn #True
   Else
      ProcedureReturn #False
   EndIf
EndProcedure

Procedure check(aaa) ; threaded auto update routine
   Protected check$, match_counter,ag, initgadget=0, oldcheck$, st.i, checkbox_state.b
   checkbox_state = GetGadgetState(#checkbox)
   Debug "in"
   Repeat
      oldcheck$=GetGadgetText(#String_Search)
      Delay(575)
      If oldcheck$<>GetGadgetText(#String_Search)  Or GetGadgetState(#checkbox) <> checkbox_state ;If changed
         checkbox_state = GetGadgetState(#checkbox)
         ClearGadgetItems(#ListIcon_procs)
         ClearGadgetItems(#ListIcon)
         check$=GetGadgetText(#String_Search)
         If check$>""
            ForEach nslist()
               If FindString(LCase(nslist()\name),LCase(check$)) Or FindString(LCase(nslist()\value),LCase(check$)) ; match in either name or value definition in the linkedlist
                  
                  If IsNumeric(check$)
                     If Val(check$) = Val(nslist()\value)
                        If GetGadgetState(#checkbox) = #PB_Checkbox_Checked
                           If Left(nslist()\name, 4) = "#PB_"
                              match_counter+1
                              AddGadgetItem(#ListIcon,-1, Str(match_counter) + ".  "+Chr(10) + nslist()\name +Chr(10)+nslist()\value)
                           EndIf
                        Else
                           match_counter+1
                           AddGadgetItem(#ListIcon,-1, Str(match_counter) + ".  "+Chr(10) + nslist()\name +Chr(10)+nslist()\value)
                        EndIf
                     EndIf
                  Else
                     If GetGadgetState(#checkbox) = #PB_Checkbox_Checked
                        If Left(nslist()\name, 4) = "#PB_"
                           match_counter+1
                           AddGadgetItem(#ListIcon,-1, Str(match_counter) + ".  "+Chr(10) + nslist()\name +Chr(10)+nslist()\value)
                        EndIf
                     Else
                        match_counter+1
                        AddGadgetItem(#ListIcon,-1, Str(match_counter) + ".  "+Chr(10) + nslist()\name +Chr(10)+nslist()\value)
                     EndIf
                  EndIf
                  
                  If GetGadgetText(#String_Search)<>check$ ; check if user altered search term if true abandon current search
                     Break
                  EndIf
               EndIf
            Next
            
            If match_counter=0
               AddGadgetItem(#ListIcon,-1,Chr(10)+"No Match`s Found")
            EndIf
            StatusBarText(#StatusBar_Window,0,"Found "+_FormatNumber(match_counter)+" Matches")
         EndIf
         If GetGadgetText(#String_Search)="" ; search term is empty clear listview
            match_counter=0
            ClearGadgetItems(#ListIcon)
            StatusBarText(#StatusBar_Window,0,"No Search Term")
         EndIf
         
      EndIf
      st=0
      match_counter=0
      SetActiveGadget(#String_Search)
   ForEver
EndProcedure

Procedure showprocs()
   Protected listpos, selectedtext.s, counter = 0
   ClearGadgetItems(#ListIcon_procs)
   listpos = GetGadgetState(#ListIcon)
   selectedtext = GetGadgetItemText(#ListIcon, listpos, 1)
   With condata()
      ForEach condata()
         If \constant = selectedtext
            ForEach \procs()
               counter + 1
               AddGadgetItem(#ListIcon_procs, -1, Str(counter) + Chr(10) + \procs()+"()")
               Debug "at: " + Str(ListIndex(condata())) + " " + \procs()
            Next
         EndIf
      Next
   EndWith
EndProcedure

Procedure showbrowser()
   Protected selectedtext.s
   selectedtext = GetGadgetItemText(#ListIcon, GetGadgetState(#ListIcon), 1)
   If Left(selectedtext, 4) = "#PB_"
      RunProgram("https://www.google.co.uk/search?q=site:http://www.purebasic.fr/english+&gws_rd=cr,ssl&ei=pGIxVtKbJMz-aZHev4AO#q=%23"+selectedtext)
   Else
      RunProgram("http://social.msdn.microsoft.com/search/en-us/windows/desktop?query="+RemoveString(selectedtext, Chr(35))+Chr(38)+"Function Refinement=181")
   EndIf
EndProcedure

Procedure showassociatedprocs()
   Protected selectedtext.s = GetGadgetItemText(#ListIcon_procs, GetGadgetState(#ListIcon_procs), 1)
   RunProgram("https://www.google.co.uk/search?q=site:http://www.purebasic.fr/english+&gws_rd=cr,ssl&ei=pGIxVtKbJMz-aZHev4AO#q=%23"+Left(selectedtext, Len(selectedtext)-1))
EndProcedure



do_list()
Do_AssoProcData(fileString(), condata())
OpenWindow_Main()

SetWindowTitle(#Window_Main,title$ + "                 " + _FormatNumber(ListSize(nslist()))+" Constants Found ")

Define selectedtext.s, listpos, s$

BindGadgetEvent(#ListIcon, @showprocs(),   #PB_EventType_LeftClick)
BindGadgetEvent(#ListIcon, @showbrowser(), #PB_EventType_RightDoubleClick)
BindGadgetEvent(#ListIcon_procs, @showassociatedprocs(), #PB_EventType_RightDoubleClick )

Define mythread=CreateThread(@check(),0)
;{- Event loop
Repeat
   Event = WaitWindowEvent()
   Select Event
      Case #PB_Event_CloseWindow
         EventWindow = EventWindow()
         If EventWindow = #Window_Main
            FreeList(nslist())
            CloseWindow(#Window_Main)
            Break
         EndIf
   EndSelect
ForEver
;
;}


Top
 Profile  
Reply with quote  
 Post subject: Re: Just another wish list
PostPosted: Fri Mar 17, 2017 2:48 am 
Offline
Enthusiast
Enthusiast

Joined: Sun Apr 06, 2008 12:54 pm
Posts: 344
Location: Brisbane, Qld, Australia
+1 for "Compiler : Add an option for auto-declaring functions".

Also a request of my own: in 'Find in Files' add a 'copy to clipboard' button. Often I have many results from 'Find in Files' and it would be useful to copy the results into a text editor so I can search within those results.

_________________
Mike
showcuesystems.com


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

 


Powered by phpBB © 2008 phpBB Group
subSilver+ theme by Canver Software, sponsor Sanal Modifiye