├── .gitattributes
├── .gitignore
├── ExtensionManagerLibrary.dll
├── Humanizer.dll
├── ICSharpCode.Decompiler.dll
├── Ionic.Zip.dll
├── License.txt
├── README.md
├── SB-Prime.sln
├── SB-Prime
├── App.config
├── App.xaml
├── App.xaml.cs
├── AppIcon.ico
├── Dialogs
│ ├── Aliases.xaml
│ ├── Aliases.xaml.cs
│ ├── Colours.xaml
│ ├── Colours.xaml.cs
│ ├── Decompile.xaml
│ ├── Decompile.xaml.cs
│ ├── Details.xaml
│ ├── Details.xaml.cs
│ ├── ExtensionSearcher.xaml
│ ├── ExtensionSearcher.xaml.cs
│ ├── FileSearcher.xaml
│ ├── FileSearcher.xaml.cs
│ ├── FindAndReplace.xaml
│ ├── FindAndReplace.xaml.cs
│ ├── FlowChart.xaml
│ ├── FlowChart.xaml.cs
│ ├── Graduate.xaml
│ ├── Graduate.xaml.cs
│ ├── Import.xaml
│ ├── Import.xaml.cs
│ ├── Links.xaml
│ ├── Links.xaml.cs
│ ├── Options.xaml
│ ├── Options.xaml.cs
│ ├── PleaseWait.xaml
│ ├── PleaseWait.xaml.cs
│ ├── PolygonSides.xaml
│ ├── PolygonSides.xaml.cs
│ ├── PopupList.xaml
│ ├── PopupList.xaml.cs
│ ├── Progress.xaml
│ ├── Progress.xaml.cs
│ ├── Publish.xaml
│ ├── Publish.xaml.cs
│ ├── ShapesEditor.xaml
│ ├── ShapesEditor.xaml.cs
│ ├── StackVariables.xaml
│ └── StackVariables.xaml.cs
├── Diff.cs
├── FileFilter.cs
├── HotKeyManager.cs
├── HowToDebug.docx
├── HowToDebug.pdf
├── MainWindow.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── MainWindowOLD.cs
├── MainWindowOLD.xaml
├── MainWindowOLD.xaml.cs
├── Output
│ └── Setup.exe
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── SBClient.cs
│ ├── Settings.Designer.cs
│ ├── Settings.settings
│ ├── Strings.Designer.cs
│ ├── Strings.ar.resx
│ ├── Strings.de.resx
│ ├── Strings.es.resx
│ ├── Strings.fr.resx
│ ├── Strings.hi.resx
│ ├── Strings.no.resx
│ ├── Strings.pl.resx
│ ├── Strings.resx
│ ├── Strings.ru.resx
│ └── Strings.zh.resx
├── ResourceHelper.cs
├── SB-Prime.csproj
├── SB-Prime.iss
├── SBClient.cs
├── SBContext.cs
├── SBDebug.cs
├── SBDiff.cs
├── SBDocument.cs
├── SBInterop.cs
├── SBLexer.cs
├── SBObjects.cs
├── SBPlugin.cs
├── SearchManager.cs
├── Settings.cs
├── Settings1.cs
├── SintillaNetPrinting
│ ├── PageInformation.cs
│ ├── PageSettings.cs
│ ├── PrintDocument.cs
│ └── Printing.cs
├── Thumbs.db
├── images
│ ├── Add.png
│ ├── Aliases.png
│ ├── AppIcon.png
│ ├── Arrow.png
│ ├── Bookmark.png
│ ├── BookmarkNext.png
│ ├── BookmarkOff.png
│ ├── BookmarkPrevious.png
│ ├── Breakpoint.png
│ ├── BreakpointIgnore.png
│ ├── BreakpointOff.png
│ ├── Close file.png
│ ├── Close.png
│ ├── Collapse.png
│ ├── Color palette.png
│ ├── Contrast.png
│ ├── Copy.png
│ ├── CopyShapes.png
│ ├── Cut.png
│ ├── Delete frame.png
│ ├── Delete.png
│ ├── Details.png
│ ├── Dialog.png
│ ├── Difference.png
│ ├── Down.png
│ ├── Erase.png
│ ├── Expand.png
│ ├── Find.png
│ ├── Flowchart.png
│ ├── Form.png
│ ├── Forum.png
│ ├── Frames.png
│ ├── Graduate.png
│ ├── Help book.png
│ ├── Help.png
│ ├── Highlight.png
│ ├── Import.png
│ ├── Indent.png
│ ├── IntellisenseEvent.png
│ ├── IntellisenseKeyword.png
│ ├── IntellisenseLabel.png
│ ├── IntellisenseMethod.png
│ ├── IntellisenseObject.png
│ ├── IntellisenseProperty.png
│ ├── IntellisenseSubroutine.png
│ ├── IntellisenseVariable.png
│ ├── Link-7Zip.png
│ ├── Link-Greenfish.png
│ ├── Link-ILSpy.png
│ ├── Link-Notepad++.png
│ ├── Link-Paint.Net.png
│ ├── Link-SharpDevelop.png
│ ├── Link-VS.png
│ ├── Link-dnSpy.png
│ ├── Link-dotPeek.png
│ ├── Link.png
│ ├── List.png
│ ├── Monitors.png
│ ├── New file.png
│ ├── Next.png
│ ├── No_image.png
│ ├── NumberMargin.png
│ ├── Objects.png
│ ├── Open file.png
│ ├── Options.png
│ ├── Pantone.png
│ ├── Paste.png
│ ├── Pause.png
│ ├── Play.png
│ ├── Plugin.png
│ ├── Previous.png
│ ├── Print.png
│ ├── Publish.png
│ ├── Redo.png
│ ├── Save all.png
│ ├── Save as.png
│ ├── Save.png
│ ├── Search computer.png
│ ├── Search folder.png
│ ├── Selection.png
│ ├── Settings.png
│ ├── SettingsLoad.png
│ ├── SettingsSave.png
│ ├── Stars.png
│ ├── Step.png
│ ├── StepOut.pdn
│ ├── StepOut.png
│ ├── StepOver.pdn
│ ├── StepOver.png
│ ├── Stop playing.png
│ ├── Text.png
│ ├── Text_uppercase.png
│ ├── Thumbs.db
│ ├── Transform_move.png
│ ├── UnObjects.png
│ ├── Undo.png
│ ├── Up.png
│ ├── Update.png
│ ├── Upload.png
│ ├── Web.png
│ ├── WhiteSpace.png
│ ├── WordWrap.png
│ ├── Writing pencil.png
│ ├── Zoom in.png
│ ├── Zoom out.png
│ ├── Zoom.png
│ ├── appworkspace.png
│ ├── bug_link.png
│ ├── sVB.png
│ ├── sp.pdn
│ └── splash.png
├── labels.txt
└── packages.config
├── SBPlugins
├── Properties
│ └── AssemblyInfo.cs
├── SBPlugins.cs
└── SBPlugins.csproj
├── System.ValueTuple.dll
├── Update
├── App.config
├── AppIcon.ico
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── Update.csproj
├── changeLog
└── localisation.xlsx
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 |
10 | # User-specific files (MonoDevelop/Xamarin Studio)
11 | *.userprefs
12 |
13 | # Build results
14 | [Dd]ebug/
15 | [Dd]ebugPublic/
16 | [Rr]elease/
17 | [Rr]eleases/
18 | x64/
19 | x86/
20 | bld/
21 | [Bb]in/
22 | [Oo]bj/
23 | [Ll]og/
24 |
25 | # Visual Studio 2015 cache/options directory
26 | .vs/
27 | # Uncomment if you have tasks that create the project's static files in wwwroot
28 | #wwwroot/
29 |
30 | # MSTest test Results
31 | [Tt]est[Rr]esult*/
32 | [Bb]uild[Ll]og.*
33 |
34 | # NUNIT
35 | *.VisualState.xml
36 | TestResult.xml
37 |
38 | # Build Results of an ATL Project
39 | [Dd]ebugPS/
40 | [Rr]eleasePS/
41 | dlldata.c
42 |
43 | # DNX
44 | project.lock.json
45 | project.fragment.lock.json
46 | artifacts/
47 |
48 | *_i.c
49 | *_p.c
50 | *_i.h
51 | *.ilk
52 | *.meta
53 | *.obj
54 | *.pch
55 | *.pdb
56 | *.pgc
57 | *.pgd
58 | *.rsp
59 | *.sbr
60 | *.tlb
61 | *.tli
62 | *.tlh
63 | *.tmp
64 | *.tmp_proj
65 | *.log
66 | *.vspscc
67 | *.vssscc
68 | .builds
69 | *.pidb
70 | *.svclog
71 | *.scc
72 |
73 | # Chutzpah Test files
74 | _Chutzpah*
75 |
76 | # Visual C++ cache files
77 | ipch/
78 | *.aps
79 | *.ncb
80 | *.opendb
81 | *.opensdf
82 | *.sdf
83 | *.cachefile
84 | *.VC.db
85 | *.VC.VC.opendb
86 |
87 | # Visual Studio profiler
88 | *.psess
89 | *.vsp
90 | *.vspx
91 | *.sap
92 |
93 | # TFS 2012 Local Workspace
94 | $tf/
95 |
96 | # Guidance Automation Toolkit
97 | *.gpState
98 |
99 | # ReSharper is a .NET coding add-in
100 | _ReSharper*/
101 | *.[Rr]e[Ss]harper
102 | *.DotSettings.user
103 |
104 | # JustCode is a .NET coding add-in
105 | .JustCode
106 |
107 | # TeamCity is a build add-in
108 | _TeamCity*
109 |
110 | # DotCover is a Code Coverage Tool
111 | *.dotCover
112 |
113 | # NCrunch
114 | _NCrunch_*
115 | .*crunch*.local.xml
116 | nCrunchTemp_*
117 |
118 | # MightyMoose
119 | *.mm.*
120 | AutoTest.Net/
121 |
122 | # Web workbench (sass)
123 | .sass-cache/
124 |
125 | # Installshield output folder
126 | [Ee]xpress/
127 |
128 | # DocProject is a documentation generator add-in
129 | DocProject/buildhelp/
130 | DocProject/Help/*.HxT
131 | DocProject/Help/*.HxC
132 | DocProject/Help/*.hhc
133 | DocProject/Help/*.hhk
134 | DocProject/Help/*.hhp
135 | DocProject/Help/Html2
136 | DocProject/Help/html
137 |
138 | # Click-Once directory
139 | publish/
140 |
141 | # Publish Web Output
142 | *.[Pp]ublish.xml
143 | *.azurePubxml
144 | # TODO: Comment the next line if you want to checkin your web deploy settings
145 | # but database connection strings (with potential passwords) will be unencrypted
146 | #*.pubxml
147 | *.publishproj
148 |
149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
150 | # checkin your Azure Web App publish settings, but sensitive information contained
151 | # in these scripts will be unencrypted
152 | PublishScripts/
153 |
154 | # NuGet Packages
155 | *.nupkg
156 | # The packages folder can be ignored because of Package Restore
157 | **/packages/*
158 | # except build/, which is used as an MSBuild target.
159 | !**/packages/build/
160 | # Uncomment if necessary however generally it will be regenerated when needed
161 | #!**/packages/repositories.config
162 | # NuGet v3's project.json files produces more ignoreable files
163 | *.nuget.props
164 | *.nuget.targets
165 |
166 | # Microsoft Azure Build Output
167 | csx/
168 | *.build.csdef
169 |
170 | # Microsoft Azure Emulator
171 | ecf/
172 | rcf/
173 |
174 | # Windows Store app package directories and files
175 | AppPackages/
176 | BundleArtifacts/
177 | Package.StoreAssociation.xml
178 | _pkginfo.txt
179 |
180 | # Visual Studio cache files
181 | # files ending in .cache can be ignored
182 | *.[Cc]ache
183 | # but keep track of directories ending in .cache
184 | !*.[Cc]ache/
185 |
186 | # Others
187 | ClientBin/
188 | ~$*
189 | *~
190 | *.dbmdl
191 | *.dbproj.schemaview
192 | *.jfm
193 | *.pfx
194 | *.publishsettings
195 | node_modules/
196 | orleans.codegen.cs
197 |
198 | # Since there are multiple workflows, uncomment next line to ignore bower_components
199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
200 | #bower_components/
201 |
202 | # RIA/Silverlight projects
203 | Generated_Code/
204 |
205 | # Backup & report files from converting an old project file
206 | # to a newer Visual Studio version. Backup files are not needed,
207 | # because we have git ;-)
208 | _UpgradeReport_Files/
209 | Backup*/
210 | UpgradeLog*.XML
211 | UpgradeLog*.htm
212 |
213 | # SQL Server files
214 | *.mdf
215 | *.ldf
216 |
217 | # Business Intelligence projects
218 | *.rdl.data
219 | *.bim.layout
220 | *.bim_*.settings
221 |
222 | # Microsoft Fakes
223 | FakesAssemblies/
224 |
225 | # GhostDoc plugin setting file
226 | *.GhostDoc.xml
227 |
228 | # Node.js Tools for Visual Studio
229 | .ntvs_analysis.dat
230 |
231 | # Visual Studio 6 build log
232 | *.plg
233 |
234 | # Visual Studio 6 workspace options file
235 | *.opt
236 |
237 | # Visual Studio LightSwitch build output
238 | **/*.HTMLClient/GeneratedArtifacts
239 | **/*.DesktopClient/GeneratedArtifacts
240 | **/*.DesktopClient/ModelManifest.xml
241 | **/*.Server/GeneratedArtifacts
242 | **/*.Server/ModelManifest.xml
243 | _Pvt_Extensions
244 |
245 | # Paket dependency manager
246 | .paket/paket.exe
247 | paket-files/
248 |
249 | # FAKE - F# Make
250 | .fake/
251 |
252 | # JetBrains Rider
253 | .idea/
254 | *.sln.iml
255 |
256 | # CodeRush
257 | .cr/
258 |
259 | # Python Tools for Visual Studio (PTVS)
260 | __pycache__/
261 | *.pyc
--------------------------------------------------------------------------------
/ExtensionManagerLibrary.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/ExtensionManagerLibrary.dll
--------------------------------------------------------------------------------
/Humanizer.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/Humanizer.dll
--------------------------------------------------------------------------------
/ICSharpCode.Decompiler.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/ICSharpCode.Decompiler.dll
--------------------------------------------------------------------------------
/Ionic.Zip.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/Ionic.Zip.dll
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is an extended interface for Small Basic.
2 |
3 | It should work with any installed version of Small Basic.
4 |
5 | It includes all of the features present in the standard Small Basic IDE, with some additional features.
6 |
7 | Main additional features are debugger, integrated extension manager and updated text editing.
8 |
9 | You can get a compiled version from [http://litdev.uk](https://litdev.uk/#Other%20Resource%20Downloads) (scroll down a bit)
10 |
11 | 
12 |
13 | See [Wiki](https://github.com/litdev1/SB-IDE/wiki) for more details.
14 |
--------------------------------------------------------------------------------
/SB-Prime.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.9.34902.65
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SB-Prime", "SB-Prime\SB-Prime.csproj", "{3CC81221-CDC7-44E8-8A60-D9685B2CAFF1}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SBPlugins", "SBPlugins\SBPlugins.csproj", "{70C29965-7B5D-4EAD-8BF1-33AD8DA3586D}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Update", "Update\Update.csproj", "{AEC84E72-FBF6-4BEC-9C28-CEF84C31DF54}"
11 | EndProject
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SBSamplePlugin", "..\SBSamplePlugin\SBSamplePlugin\SBSamplePlugin.csproj", "{20B1F5D1-5C23-44F2-8AAC-BCA48B7E2797}"
13 | ProjectSection(ProjectDependencies) = postProject
14 | {70C29965-7B5D-4EAD-8BF1-33AD8DA3586D} = {70C29965-7B5D-4EAD-8BF1-33AD8DA3586D}
15 | EndProjectSection
16 | EndProject
17 | Global
18 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
19 | Debug|Any CPU = Debug|Any CPU
20 | Release|Any CPU = Release|Any CPU
21 | EndGlobalSection
22 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
23 | {3CC81221-CDC7-44E8-8A60-D9685B2CAFF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
24 | {3CC81221-CDC7-44E8-8A60-D9685B2CAFF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
25 | {3CC81221-CDC7-44E8-8A60-D9685B2CAFF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
26 | {3CC81221-CDC7-44E8-8A60-D9685B2CAFF1}.Release|Any CPU.Build.0 = Release|Any CPU
27 | {70C29965-7B5D-4EAD-8BF1-33AD8DA3586D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
28 | {70C29965-7B5D-4EAD-8BF1-33AD8DA3586D}.Debug|Any CPU.Build.0 = Debug|Any CPU
29 | {70C29965-7B5D-4EAD-8BF1-33AD8DA3586D}.Release|Any CPU.ActiveCfg = Release|Any CPU
30 | {70C29965-7B5D-4EAD-8BF1-33AD8DA3586D}.Release|Any CPU.Build.0 = Release|Any CPU
31 | {AEC84E72-FBF6-4BEC-9C28-CEF84C31DF54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
32 | {AEC84E72-FBF6-4BEC-9C28-CEF84C31DF54}.Debug|Any CPU.Build.0 = Debug|Any CPU
33 | {AEC84E72-FBF6-4BEC-9C28-CEF84C31DF54}.Release|Any CPU.ActiveCfg = Release|Any CPU
34 | {AEC84E72-FBF6-4BEC-9C28-CEF84C31DF54}.Release|Any CPU.Build.0 = Release|Any CPU
35 | {20B1F5D1-5C23-44F2-8AAC-BCA48B7E2797}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
36 | {20B1F5D1-5C23-44F2-8AAC-BCA48B7E2797}.Debug|Any CPU.Build.0 = Debug|Any CPU
37 | {20B1F5D1-5C23-44F2-8AAC-BCA48B7E2797}.Release|Any CPU.ActiveCfg = Release|Any CPU
38 | {20B1F5D1-5C23-44F2-8AAC-BCA48B7E2797}.Release|Any CPU.Build.0 = Release|Any CPU
39 | EndGlobalSection
40 | GlobalSection(SolutionProperties) = preSolution
41 | HideSolutionNode = FALSE
42 | EndGlobalSection
43 | GlobalSection(ExtensibilityGlobals) = postSolution
44 | SolutionGuid = {9DEFE2AF-CCD3-4279-BD89-9B374A0C1F42}
45 | EndGlobalSection
46 | EndGlobal
47 |
--------------------------------------------------------------------------------
/SB-Prime/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/SB-Prime/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Shell;
9 |
10 | namespace SB_Prime
11 | {
12 | ///
13 | /// Interaction logic for App.xaml
14 | ///
15 | public partial class App : Application
16 | {
17 | public string[] Arguments { get; set; }
18 |
19 | private void Application_Startup(object sender, StartupEventArgs e)
20 | {
21 | Arguments = e.Args;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/SB-Prime/AppIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/AppIcon.ico
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Aliases.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Aliases.xaml.cs:
--------------------------------------------------------------------------------
1 | using Humanizer;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Configuration;
5 | using System.Drawing;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Security.Policy;
9 | using System.Text;
10 | using System.Text.RegularExpressions;
11 | using System.Threading.Tasks;
12 | using System.Windows;
13 | using System.Windows.Controls;
14 | using System.Windows.Data;
15 | using System.Windows.Documents;
16 | using System.Windows.Input;
17 | using System.Windows.Media;
18 | using System.Windows.Media.Imaging;
19 | using System.Windows.Shapes;
20 |
21 | namespace SB_Prime.Dialogs
22 | {
23 | ///
24 | /// Interaction logic for Aliases.xaml
25 | ///
26 | public partial class Aliases : Window
27 | {
28 | private List aliases = new List();
29 | private static string word = "^[" + MainWindow.exRegex + "A-Za-z_][" + MainWindow.exRegex + "A-Za-z_0-9]*$";
30 |
31 | public Aliases()
32 | {
33 | InitializeComponent();
34 |
35 | Topmost = MainWindow.topmost;
36 | FontSize = 12 + MainWindow.zoom;
37 |
38 | dataGridAliases.ItemsSource = aliases;
39 | foreach (KeyValuePair kvp in FileFilter.AllAliases)
40 | {
41 | aliases.Add(new AliasesData() { Default = kvp.Key, Alias = kvp.Value });
42 | }
43 | enableAliases.IsChecked = FileFilter.EnableAliases;
44 |
45 | Validate();
46 | }
47 |
48 | private void Done_Click(object sender, RoutedEventArgs e)
49 | {
50 | Validate();
51 | FileFilter.Aliases.Clear();
52 | FileFilter.AllAliases.Clear();
53 | foreach (AliasesData alias in aliases)
54 | {
55 | FileFilter.AllAliases[alias.Default] = alias.Alias;
56 | if (!alias.Valid) continue;
57 | FileFilter.Aliases[alias.Default] = alias.Alias;
58 | }
59 | FileFilter.EnableAliases = (bool)enableAliases.IsChecked;
60 | Close();
61 | }
62 |
63 | private void buttonCancel_Click(object sender, RoutedEventArgs e)
64 | {
65 | Close();
66 | }
67 |
68 | private void dataGridAliases_KeyDown(object sender, KeyEventArgs e)
69 | {
70 | if (e.Key == Key.V && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
71 | {
72 | string data = (string)Clipboard.GetData(DataFormats.UnicodeText);
73 | if (null == data) return;
74 | string[] lines = data.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
75 | foreach (string line in lines)
76 | {
77 | string[] values = line.Split(new char[] { ' ', ',', '\t' }, StringSplitOptions.RemoveEmptyEntries);
78 | if (values.Length < 2) continue;
79 | aliases.Add(new AliasesData() { Default = values[0], Alias = values[1] });
80 | }
81 | Validate();
82 | }
83 | }
84 |
85 | private void buttonHelp_Click(object sender, RoutedEventArgs e)
86 | {
87 | MessageBox.Show(Properties.Strings.Label500 + "\n\n" +
88 | Properties.Strings.Label501 + "\n\n" +
89 | Properties.Strings.Label502,
90 | "SB-Prime", MessageBoxButton.OK, MessageBoxImage.Information);
91 | }
92 |
93 | private void Validate()
94 | {
95 | foreach (AliasesData alias in aliases)
96 | {
97 | alias.Valid = IsValid(alias.Default, alias.Alias);
98 | }
99 | dataGridAliases.ItemsSource = null;
100 | dataGridAliases.ItemsSource = aliases;
101 | }
102 |
103 | public static bool IsValid(string _default, string _alias)
104 | {
105 | if (null == _default || null == _alias) return false;
106 | if (!Regex.IsMatch(_default, word)) return false;
107 | if (!Regex.IsMatch(_alias, word)) return false;
108 | bool bDefault = false;
109 | bool bAlias = true;
110 | foreach (SBObject obj in SBObjects.objects)
111 | {
112 | if (obj.name.ToUpperInvariant() == _default.ToUpperInvariant())
113 | {
114 | bDefault = true;
115 | }
116 | if (obj.name.ToUpperInvariant() == _alias.ToUpperInvariant())
117 | {
118 | bAlias = false;
119 | }
120 | foreach (Member member in obj.members)
121 | {
122 | if (member.name.ToUpperInvariant() == _default.ToUpperInvariant())
123 | {
124 | bDefault = true;
125 | }
126 | if (member.name.ToUpperInvariant() == _alias.ToUpperInvariant())
127 | {
128 | bAlias = false;
129 | }
130 | }
131 | }
132 | return bDefault && bAlias;
133 | }
134 |
135 | private void buttonValidate_Click(object sender, RoutedEventArgs e)
136 | {
137 | Validate();
138 | }
139 |
140 | private void buttonExport_Click(object sender, RoutedEventArgs e)
141 | {
142 | System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog();
143 | saveFileDialog.FileName = "Aliases";
144 | saveFileDialog.Filter = "Alias files (*.txt)|*.txt|All files (*.*)|*.*";
145 | saveFileDialog.FilterIndex = 1;
146 | saveFileDialog.RestoreDirectory = true;
147 | if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
148 | {
149 | List data = new List();
150 | foreach (AliasesData alias in aliases)
151 | {
152 | data.Add(alias.Default + '\t' + alias.Alias);
153 | }
154 | File.WriteAllLines(saveFileDialog.FileName, data.ToArray());
155 | }
156 | }
157 |
158 | private void buttonImport_Click(object sender, RoutedEventArgs e)
159 | {
160 | System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();
161 | openFileDialog.Filter = "Alias files (*.txt)|*.txt|All files (*.*)|*.*";
162 | openFileDialog.FilterIndex = 1;
163 | openFileDialog.RestoreDirectory = true;
164 | if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
165 | {
166 | string[] data = File.ReadAllLines(openFileDialog.FileName);
167 | aliases.Clear();
168 | foreach (string line in data)
169 | {
170 | string[] values = line.Split(new char[] { ' ', ',', '\t' }, StringSplitOptions.RemoveEmptyEntries);
171 | if (values.Length < 2) continue;
172 | aliases.Add(new AliasesData() { Default = values[0], Alias = values[1] });
173 | }
174 | }
175 | Validate();
176 | }
177 |
178 | private void buttonClear_Click(object sender, RoutedEventArgs e)
179 | {
180 | aliases.Clear();
181 | Validate();
182 | }
183 | }
184 |
185 | public class AliasesData
186 | {
187 | public string Default { get; set; }
188 | public string Alias { get; set; }
189 | public bool Valid { get; set; }
190 | }
191 | }
192 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Colours.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Decompile.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Decompile.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Data;
10 | using System.Windows.Documents;
11 | using System.Windows.Forms;
12 | using System.Windows.Input;
13 | using System.Windows.Media;
14 | using System.Windows.Media.Imaging;
15 | //using System.Windows.Shapes;
16 |
17 | namespace SB_Prime.Dialogs
18 | {
19 | ///
20 | /// Interaction logic for Decompile.xaml
21 | ///
22 | public partial class Decompile : Window
23 | {
24 | private MainWindow mainWindow;
25 | public static string sourceFile = "";
26 | public static string targetFolder = "";
27 | public static bool bConsole = true;
28 |
29 | public Decompile(MainWindow mainWindow)
30 | {
31 | this.mainWindow = mainWindow;
32 |
33 | InitializeComponent();
34 |
35 | Topmost = MainWindow.topmost;
36 | FontSize = 12 + MainWindow.zoom;
37 | label.FontSize = 16 + MainWindow.zoom;
38 |
39 | textBoxDecompileSource.Text = sourceFile;
40 | textBoxDecompileFolder.Text = targetFolder;
41 | textBoxDecompileFolder.Focus();
42 | buttonDecompileContinue.IsEnabled = File.Exists(textBoxDecompileSource.Text) && Directory.Exists(textBoxDecompileFolder.Text);
43 | checkBoxConsole.IsChecked = bConsole;
44 | }
45 |
46 | private void buttonDecompileFolder_Click(object sender, RoutedEventArgs e)
47 | {
48 | FolderBrowserDialog fbd = new FolderBrowserDialog();
49 | fbd.ShowNewFolderButton = true;
50 | fbd.SelectedPath = targetFolder;
51 | if (fbd.SelectedPath == "") fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
52 | DialogResult result = fbd.ShowDialog();
53 |
54 | if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
55 | {
56 | textBoxDecompileFolder.Text = fbd.SelectedPath;
57 | buttonDecompileContinue.IsEnabled = File.Exists(textBoxDecompileSource.Text);
58 | }
59 | }
60 |
61 | private void buttonDecompileCancel_Click(object sender, RoutedEventArgs e)
62 | {
63 | sourceFile = textBoxDecompileSource.Text;
64 | targetFolder = textBoxDecompileFolder.Text;
65 | bConsole = (bool)checkBoxConsole.IsChecked;
66 | Close();
67 | }
68 |
69 | private void buttonDecompileContinue_Click(object sender, RoutedEventArgs e)
70 | {
71 | System.Windows.Input.Cursor cursor = Mouse.OverrideCursor;
72 | if (null == cursor) cursor = System.Windows.Input.Cursors.Arrow;
73 | Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait;
74 | try
75 | {
76 | sourceFile = textBoxDecompileSource.Text;
77 | targetFolder = textBoxDecompileFolder.Text;
78 | if (!Directory.Exists(targetFolder) || !File.Exists(sourceFile)) return;
79 | if (Directory.GetFiles(targetFolder).Length > 0 || Directory.GetDirectories(targetFolder).Length > 0)
80 | {
81 | System.Windows.MessageBox.Show(Properties.Strings.String22 + "\n\n" + Properties.Strings.String23, "SB-Prime", MessageBoxButton.OK, MessageBoxImage.Warning);
82 | return;
83 | }
84 | string targetProg = textBoxDecompileFolder.Text + "\\" + Path.GetFileNameWithoutExtension(sourceFile) + ".csproj";
85 | bConsole = (bool)checkBoxConsole.IsChecked;
86 |
87 | if (mainWindow.sbInterop.Decomple(targetProg, sourceFile, bConsole))
88 | {
89 | Close();
90 | }
91 | }
92 | catch (Exception ex)
93 | {
94 | MainWindow.Errors.Add(new Error("Decomple : " + ex.Message));
95 | }
96 |
97 | Mouse.OverrideCursor = cursor;
98 | }
99 |
100 | private void textBoxDecompileFolder_TextChanged(object sender, TextChangedEventArgs e)
101 | {
102 | buttonDecompileContinue.IsEnabled = File.Exists(textBoxDecompileSource.Text) && Directory.Exists(textBoxDecompileFolder.Text);
103 | }
104 |
105 | private void textBoxDecompileSource_TextChanged(object sender, TextChangedEventArgs e)
106 | {
107 | buttonDecompileContinue.IsEnabled = File.Exists(textBoxDecompileSource.Text) && Directory.Exists(textBoxDecompileFolder.Text);
108 | }
109 |
110 | private void buttonDecompileSource_Click(object sender, RoutedEventArgs e)
111 | {
112 | OpenFileDialog ofd = new OpenFileDialog();
113 | ofd.Filter = ".Net Assemblies (*.exe)|*.exe|(*.dll)|*.dll|All files (*.*)|*.*";
114 | ofd.FilterIndex = 1;
115 | ofd.RestoreDirectory = true;
116 | if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
117 | {
118 | textBoxDecompileSource.Text = ofd.FileName;
119 | buttonDecompileContinue.IsEnabled = Directory.Exists(textBoxDecompileFolder.Text);
120 | }
121 | }
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Details.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Details.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Shapes;
14 |
15 | namespace SB_Prime.Dialogs
16 | {
17 | ///
18 | /// Interaction logic for Details.xaml
19 | ///
20 | public partial class Details : Window
21 | {
22 | SBInterop sbInterop;
23 | dynamic programDetails;
24 |
25 | public Details(string key, SBInterop sbInterop)
26 | {
27 | this.sbInterop = sbInterop;
28 |
29 | InitializeComponent();
30 |
31 | Topmost = MainWindow.topmost;
32 | FontSize = 12 + MainWindow.zoom;
33 |
34 | textBoxID.Text = key;
35 | programDetails = sbInterop.GetDetails(textBoxID.Text);
36 | ShowDetails();
37 | }
38 |
39 | private void ShowDetails()
40 | {
41 | if (null == programDetails) return;
42 |
43 | string id = programDetails.Id;
44 | string title = programDetails.Title;
45 | string description = programDetails.Description;
46 | string category = programDetails.Category;
47 | double myRating = programDetails.MyRating;
48 | double rating = programDetails.Rating;
49 | int popularity = programDetails.Popularity;
50 | int numberOfRatings = programDetails.NumberOfRatings;
51 |
52 | buttonSetRating.IsEnabled = programDetails.MyRating < 0;
53 | myRating = myRating > 0 ? myRating : 3;
54 |
55 | textBoxID.Text = id;
56 | textBoxTitle.Text = title;
57 | textBoxDescription.Text = description;
58 | textBoxCategory.Text = category;
59 | textBoxPopularity.Text = popularity.ToString();
60 | textBoxNumberofRatings.Text = numberOfRatings.ToString();
61 | textBoxRating.Text = rating.ToString();
62 | textBoxMyRating.Text = myRating.ToString();
63 |
64 | starRating.Width = 24 * rating;
65 | starMyRating.Width = 24 * myRating;
66 | }
67 |
68 | private void buttonSetRating_Click(object sender, RoutedEventArgs e)
69 | {
70 | double rating = 3;
71 | if (double.TryParse(textBoxMyRating.Text, out rating))
72 | {
73 | rating = Math.Min(5, Math.Max(1, rating));
74 | programDetails = sbInterop.SetRating(textBoxID.Text, rating);
75 | ShowDetails();
76 | }
77 | }
78 |
79 | private void buttonReload_Click(object sender, RoutedEventArgs e)
80 | {
81 | programDetails = sbInterop.GetDetails(textBoxID.Text);
82 | ShowDetails();
83 | }
84 |
85 | private void Rectangle_MouseMove(object sender, MouseEventArgs e)
86 | {
87 | if (programDetails.MyRating > 0) return;
88 | int myRating = 1 + (int)e.MouseDevice.GetPosition((Rectangle)sender).X / 24;
89 | textBoxMyRating.Text = myRating.ToString();
90 | starMyRating.Width = 24 * myRating;
91 | }
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/ExtensionSearcher.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/FileSearcher.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/FindAndReplace.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/FlowChart.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Graduate.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 | This wizard will convert your Small Basic program to Microsoft Visual Basic
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Graduate.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Data;
10 | using System.Windows.Documents;
11 | using System.Windows.Forms;
12 | using System.Windows.Input;
13 | using System.Windows.Media;
14 | using System.Windows.Media.Imaging;
15 | using System.Windows.Shapes;
16 |
17 | namespace SB_Prime.Dialogs
18 | {
19 | ///
20 | /// Interaction logic for Graduate.xaml
21 | ///
22 | public partial class Graduate : Window
23 | {
24 | public bool OK = false;
25 | public static string ProjectPath = "";
26 |
27 | public Graduate()
28 | {
29 | InitializeComponent();
30 |
31 | Topmost = MainWindow.topmost;
32 | FontSize = 12 + MainWindow.zoom;
33 | label.FontSize = 16 + MainWindow.zoom;
34 |
35 | OK = false;
36 | textBoxGraduate.Focus();
37 | textBoxGraduate.Text = ProjectPath;
38 | buttonGraduateContinue.IsEnabled = Directory.Exists(textBoxGraduate.Text);
39 | textBlock.Text = Properties.Strings.String119;
40 | }
41 |
42 | private void buttonGraduateFolder_Click(object sender, RoutedEventArgs e)
43 | {
44 | FolderBrowserDialog fbd = new FolderBrowserDialog();
45 | fbd.ShowNewFolderButton = true;
46 | fbd.SelectedPath = ProjectPath;
47 | if (fbd.SelectedPath == "") fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
48 | DialogResult result = fbd.ShowDialog();
49 |
50 | if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
51 | {
52 | textBoxGraduate.Text = fbd.SelectedPath;
53 | buttonGraduateContinue.IsEnabled = true;
54 | }
55 | }
56 |
57 | private void buttonGraduateCancel_Click(object sender, RoutedEventArgs e)
58 | {
59 | Close();
60 | ProjectPath = textBoxGraduate.Text;
61 | }
62 |
63 | private void buttonGraduateContinue_Click(object sender, RoutedEventArgs e)
64 | {
65 | if (Directory.Exists(textBoxGraduate.Text))
66 | {
67 | if (Directory.GetFiles(textBoxGraduate.Text).Count() > 0)
68 | {
69 | if (System.Windows.MessageBox.Show(Properties.Strings.String23 + "\n\n" + Properties.Strings.String25, "SB-Prime", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) return;
70 | }
71 | OK = true;
72 | ProjectPath = textBoxGraduate.Text;
73 | Close();
74 | }
75 | }
76 |
77 | private void textBoxGraduate_TextChanged(object sender, TextChangedEventArgs e)
78 | {
79 | buttonGraduateContinue.IsEnabled = Directory.Exists(textBoxGraduate.Text);
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Import.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Import.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Text.RegularExpressions;
7 | using System.Threading.Tasks;
8 | using System.Windows;
9 | using System.Windows.Controls;
10 | using System.Windows.Data;
11 | using System.Windows.Documents;
12 | using System.Windows.Input;
13 | using System.Windows.Media;
14 | using System.Windows.Media.Imaging;
15 | using System.Windows.Shapes;
16 |
17 | namespace SB_Prime.Dialogs
18 | {
19 | ///
20 | /// Interaction logic for Import.xaml
21 | ///
22 | public partial class Import : Window
23 | {
24 | SBInterop sbInterop;
25 |
26 | public static string GetKey()
27 | {
28 | string key = (string)Clipboard.GetData(DataFormats.Text);
29 | key = null == key ? "" : key.Trim().ToUpper();
30 | if (Regex.Match(key, "^[A-Z]{3}[0-9]{3}").Success ||
31 | Regex.Match(key, "^[A-Z]{4}[0-9]{3}\\.[0-9]{3}").Success ||
32 | Regex.Match(key, "^[A-Z]{4}[0-9]{2}\\.[0-9]{3}").Success ||
33 | Regex.Match(key, "^[A-Z]{4}[0-9]{1}\\.[0-9]{3}").Success)
34 | {
35 | return key;
36 | }
37 | else if (Regex.Match(key, "^[A-Z]{4}[0-9]{3}").Success)
38 | {
39 | key += ".000";
40 | return key;
41 | }
42 | return "";
43 | }
44 |
45 | internal Import(SBInterop sbInterop)
46 | {
47 | this.sbInterop = sbInterop;
48 |
49 | InitializeComponent();
50 |
51 | Topmost = MainWindow.topmost;
52 | FontSize = 12 + MainWindow.zoom;
53 | label.FontSize = 16 + MainWindow.zoom;
54 |
55 | textBoxImport.Focus();
56 | textBoxImport.Text = GetKey();
57 | textBoxImport.CaretIndex = textBoxImport.Text.Length;
58 | textBoxImport.SelectAll();
59 | }
60 |
61 | private void buttonCancel_Click(object sender, RoutedEventArgs e)
62 | {
63 | MainWindow.ImportProgram = "";
64 | Close();
65 | }
66 |
67 | private void buttonOK_Click(object sender, RoutedEventArgs e)
68 | {
69 | OK();
70 | }
71 |
72 | private void textBoxImport_KeyDown(object sender, KeyEventArgs e)
73 | {
74 | if (e.Key == Key.Return)
75 | {
76 | OK();
77 | }
78 | }
79 |
80 | private void OK()
81 | {
82 | string data = textBoxImport.Text.ToUpper();
83 | if (Regex.Match(data, "^[A-Z]{4}[0-9]{3}").Success && !data.Contains('.'))
84 | {
85 | data += ".000";
86 | }
87 | MainWindow.ImportProgram = sbInterop.Import(data);
88 | if (MainWindow.ImportProgram == "error")
89 | {
90 | MainWindow.Errors.Add(new Error("Import : " + Properties.Strings.String59 + " " + textBoxImport.Text));
91 | }
92 | else
93 | {
94 | MainWindow.Errors.Add(new Error("Import : " + Properties.Strings.String60 + " " + textBoxImport.Text));
95 | //string search = "' The following line could be harmful and has been automatically commented.";
96 | //int count = Regex.Matches(MainWindow.ImportProgram, search).Count;
97 | //if (count > 0)
98 | //{
99 | // MessageBox.Show("There are " + count + " 'File' commands in this program that you can un-comment with right click option.\n\nEnsure to check the File commands are safe first,\nespecially any Delete commands!", "Import", MessageBoxButton.OK, MessageBoxImage.Information);
100 | //}
101 | }
102 | Close();
103 | }
104 | }
105 | }
106 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Links.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Links.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Controls.Primitives;
10 | using System.Windows.Data;
11 | using System.Windows.Documents;
12 | using System.Windows.Input;
13 | using System.Windows.Media;
14 | using System.Windows.Media.Imaging;
15 | using System.Windows.Shapes;
16 |
17 | namespace SB_Prime.Dialogs
18 | {
19 | ///
20 | /// Interaction logic for Links.xaml
21 | ///
22 | public partial class Links : Window
23 | {
24 | private List links = new List();
25 |
26 | public Links()
27 | {
28 | InitializeComponent();
29 |
30 | Topmost = MainWindow.topmost;
31 | FontSize = 12 + MainWindow.zoom;
32 |
33 | dataGridLinks.ItemsSource = links;
34 |
35 | Image image = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link) };
36 | links.Add(new LinkData()
37 | {
38 | Name = "Visual Studio",
39 | Description = Properties.Strings.String75 + "\n" + Properties.Strings.String76 + "\n" + Properties.Strings.String83,
40 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_VS) },
41 | URL = "https://visualstudio.microsoft.com/free-developer-offers"
42 | });
43 | links.Add(new LinkData()
44 | {
45 | Name = "SharpDevelop",
46 | Description = Properties.Strings.String79,
47 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_SharpDevelop) },
48 | URL = "https://sharpdevelop.software.informer.com/download/#downloading"
49 | });
50 | links.Add(new LinkData()
51 | {
52 | Name = "dotPeek",
53 | Description = Properties.Strings.String77 + "\n" + Properties.Strings.String78,
54 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_dotPeek) },
55 | URL = "https://www.jetbrains.com/decompiler/"
56 | });
57 | links.Add(new LinkData()
58 | {
59 | Name = "dnSpy",
60 | Description = Properties.Strings.String188,
61 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_dnSpy) },
62 | URL = "https://github.com/dnSpy/dnSpy/releases/"
63 | });
64 | links.Add(new LinkData()
65 | {
66 | Name = "Paint.Net",
67 | Description = Properties.Strings.String80 + "\n" + Properties.Strings.String81,
68 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_Paint_Net) },
69 | URL = "https://www.getpaint.net/index.html"
70 | });
71 | links.Add(new LinkData()
72 | {
73 | Name = "Notepad++",
74 | Description = Properties.Strings.String82 + "\n" + Properties.Strings.String84,
75 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_Notepad__) },
76 | URL = "https://notepad-plus-plus.org"
77 | });
78 | links.Add(new LinkData()
79 | {
80 | Name = "7Zip",
81 | Description = Properties.Strings.String85 + "\n" + Properties.Strings.String86,
82 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_7Zip) },
83 | URL = "https://www.7-zip.org/"
84 | });
85 | links.Add(new LinkData()
86 | {
87 | Name = "Greenfish\nIcon Editor",
88 | Description = Properties.Strings.String87 + "\n" + Properties.Strings.String88,
89 | Link = new Image() { Source = MainWindow.ImageSourceFromBitmap(Properties.Resources.Link_Greenfish) },
90 | URL = "https://download.cnet.com/Greenfish-Icon-Editor-Pro/3000-2193_4-10773415.html"
91 | });
92 | }
93 |
94 | private void dataGridLinkSet(object sender, RoutedEventArgs e)
95 | {
96 | Button button = (Button)sender;
97 | try
98 | {
99 | LinkData data = (LinkData)button.Tag;
100 | if (null != data)
101 | {
102 | Process.Start(data.URL);
103 | }
104 | }
105 | catch
106 | {
107 |
108 | }
109 | }
110 | }
111 |
112 | public class LinkData
113 | {
114 | public string Name { get; set; }
115 | public string Description { get; set; }
116 | public Image Link { get; set; }
117 | public string URL { get; set; }
118 | public string Details
119 | {
120 | get { return URL; }
121 | }
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Options.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Options.xaml.cs:
--------------------------------------------------------------------------------
1 | using ICSharpCode.Decompiler.CSharp.Syntax;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows;
10 | using System.Windows.Controls;
11 | using System.Windows.Data;
12 | using System.Windows.Documents;
13 | using System.Windows.Forms;
14 | using System.Windows.Input;
15 | using System.Windows.Media;
16 | using System.Windows.Media.Imaging;
17 | using System.Windows.Shapes;
18 |
19 | namespace SB_Prime.Dialogs
20 | {
21 | ///
22 | /// Interaction logic for Options.xaml
23 | ///
24 | public partial class Options : Window
25 | {
26 | private MainWindow mainWindow;
27 |
28 | public Options(MainWindow mainWindow)
29 | {
30 | this.mainWindow = mainWindow;
31 |
32 | InitializeComponent();
33 |
34 | FontSize = 12 + MainWindow.zoom;
35 |
36 | comboBoxInstallation.Items.Add(MainWindow.InstallDir);
37 | comboBoxInstallation.SelectedItem = MainWindow.InstallDir;
38 | foreach (string installDir in MainWindow.InstallDirExtra)
39 | {
40 | if (installDir == MainWindow.InstallDir) continue;
41 | comboBoxInstallation.Items.Add(installDir);
42 | }
43 | checkBoxQuoteInserts.IsChecked = MainWindow.quoteInserts;
44 | checkBoxHEXColors.IsChecked = MainWindow.hexColors;
45 | checkBoxLoadExtensions.IsChecked = MainWindow.loadExtensions;
46 | checkBoxTopmost.IsChecked = MainWindow.topmost;
47 | checkBoxParseLineVariables.IsChecked = MainWindow.parseLineVariables;
48 | checkBoxKeywordContains.IsChecked = MainWindow.keywordContains;
49 | textBoxPrintMagnification.Text = MainWindow.printMagnification.ToString();
50 | textBoxRegex.Text = MainWindow.exRegex;
51 | comboBoxPrintColours.Items.Clear();
52 | comboBoxPrintColours.Items.Add(new TextBlock() { Text = Properties.Strings.String114, Tag = (int)ScintillaPrinting.PageSettings.PrintColorMode.ColorOnWhite });
53 | comboBoxPrintColours.Items.Add(new TextBlock() { Text = Properties.Strings.String115, Tag = (int)ScintillaPrinting.PageSettings.PrintColorMode.Normal });
54 | comboBoxPrintColours.Items.Add(new TextBlock() { Text = Properties.Strings.String116, Tag = (int)ScintillaPrinting.PageSettings.PrintColorMode.BlackOnWhite });
55 | comboBoxPrintColours.SelectedItem = comboBoxPrintColours.Items.OfType().SingleOrDefault(x => (int)x.Tag == MainWindow.printColours);
56 | if (MainWindow.indentSpaces == 1) radioButton1.IsChecked = true;
57 | else if (MainWindow.indentSpaces == 4) radioButton4.IsChecked = true;
58 | else radioButton2.IsChecked = true;
59 | List fonts = new List();
60 | foreach (FontFamily font in Fonts.SystemFontFamilies) //WPF fonts
61 | {
62 | string fontName = font.FamilyNames.Values.First();
63 | double fontSize = FontSize;
64 |
65 | TextBlock text = new TextBlock() { Text = fontName, FontFamily = font, FontSize = fontSize, HorizontalAlignment = System.Windows.HorizontalAlignment.Center };
66 | text.Tag = fontName;
67 | fonts.Add(text);
68 | }
69 | fonts.Sort(SortCompareFont);
70 | comboBoxLexerFont.Items.Clear();
71 | foreach (TextBlock text in fonts)
72 | {
73 | comboBoxLexerFont.Items.Add(text);
74 | }
75 | comboBoxLexerFont.SelectedItem = comboBoxLexerFont.Items.OfType().SingleOrDefault(x => (string)x.Tag == MainWindow.lexerFont);
76 | }
77 |
78 | private int SortCompareFont(TextBlock x, TextBlock y)
79 | {
80 | return x.Tag.ToString().CompareTo(y.Tag.ToString());
81 | }
82 |
83 | private void buttonUpdate_Click(object sender, RoutedEventArgs e)
84 | {
85 | mainWindow.Update();
86 | }
87 |
88 | private void buttonInstallation_Click(object sender, RoutedEventArgs e)
89 | {
90 | FolderBrowserDialog fbd = new FolderBrowserDialog();
91 | fbd.ShowNewFolderButton = true;
92 | fbd.SelectedPath = comboBoxInstallation.SelectedItem.ToString();
93 | DialogResult result = fbd.ShowDialog();
94 |
95 | if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
96 | {
97 | if (!comboBoxInstallation.Items.Contains(fbd.SelectedPath))
98 | {
99 | comboBoxInstallation.Items.Add(fbd.SelectedPath);
100 | }
101 | comboBoxInstallation.SelectedItem = fbd.SelectedPath;
102 | }
103 | }
104 |
105 | private void buttonCancel_Click(object sender, RoutedEventArgs e)
106 | {
107 | Close();
108 | }
109 |
110 | private void buttonOK_Click(object sender, RoutedEventArgs e)
111 | {
112 | string InstallDir = "";
113 | if (null != comboBoxInstallation.SelectedItem)
114 | {
115 | InstallDir = comboBoxInstallation.SelectedItem.ToString();
116 | }
117 | if (!Directory.Exists(InstallDir)) InstallDir = "";
118 | if (MainWindow.InstallDir != InstallDir)
119 | {
120 | MainWindow.InstallDir = InstallDir;
121 | mainWindow.sbInterop = new SBInterop();
122 | }
123 | MainWindow.InstallDirExtra.Clear();
124 | foreach (var installDir in comboBoxInstallation.Items)
125 | {
126 | if (null == installDir) continue;
127 | if (installDir == comboBoxInstallation.SelectedItem) continue;
128 | if (MainWindow.InstallDirExtra.Contains(installDir)) continue;
129 | MainWindow.InstallDirExtra.Add(installDir.ToString());
130 | }
131 | MainWindow.quoteInserts = (bool)checkBoxQuoteInserts.IsChecked;
132 | MainWindow.hexColors = (bool)checkBoxHEXColors.IsChecked;
133 | MainWindow.loadExtensions = (bool)checkBoxLoadExtensions.IsChecked;
134 | MainWindow.topmost = (bool)checkBoxTopmost.IsChecked;
135 | MainWindow.parseLineVariables = (bool)checkBoxParseLineVariables.IsChecked;
136 | MainWindow.keywordContains = (bool)checkBoxKeywordContains.IsChecked;
137 | short.TryParse(textBoxPrintMagnification.Text, out MainWindow.printMagnification);
138 | MainWindow.exRegex = textBoxRegex.Text;
139 | MainWindow.printColours = (int)((TextBlock)comboBoxPrintColours.SelectedItem).Tag;
140 | if (radioButton1.IsChecked == true) MainWindow.indentSpaces = 1;
141 | else if (radioButton4.IsChecked == true) MainWindow.indentSpaces = 4;
142 | else MainWindow.indentSpaces = 2;
143 | MainWindow.lexerFont = ((TextBlock)(comboBoxLexerFont.SelectedItem)).Tag.ToString();
144 | Close();
145 | }
146 |
147 | private void buttonDelete_Click(object sender, RoutedEventArgs e)
148 | {
149 | comboBoxInstallation.Items.Remove(comboBoxInstallation.SelectedItem);
150 | comboBoxInstallation.SelectedIndex = 0;
151 | }
152 | }
153 | }
154 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/PleaseWait.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/PleaseWait.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Shapes;
14 |
15 | namespace SB_Prime.Dialogs
16 | {
17 | ///
18 | /// Interaction logic for PleaseWait.xaml
19 | ///
20 | public partial class PleaseWait : Window
21 | {
22 | public PleaseWait(string Message = "Please Wait...")
23 | {
24 | InitializeComponent();
25 |
26 | label.Content = Message;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/PolygonSides.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/PolygonSides.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Shapes;
14 |
15 | namespace SB_Prime.Dialogs
16 | {
17 | ///
18 | /// Interaction logic for PolygonSides.xaml
19 | ///
20 | public partial class PolygonSides : Window
21 | {
22 | public static int MaxSides = 100;
23 | public static int NumSides = 5;
24 |
25 | public PolygonSides()
26 | {
27 | InitializeComponent();
28 |
29 | Topmost = MainWindow.topmost;
30 | FontSize = 12 + MainWindow.zoom;
31 |
32 | textBoxNumSides.Text = NumSides.ToString();
33 | textBoxNumSides.Select(textBoxNumSides.Text.Length, 0);
34 | textBoxNumSides.Focus();
35 | }
36 |
37 | private void buttonDone_Click(object sender, RoutedEventArgs e)
38 | {
39 | int.TryParse(textBoxNumSides.Text, out NumSides);
40 | NumSides = Math.Min(MaxSides, Math.Max(4, NumSides));
41 | Close();
42 | }
43 |
44 | private void textBoxNumSides_KeyDown(object sender, KeyEventArgs e)
45 | {
46 | if (e.Key == Key.Return)
47 | {
48 | buttonDone_Click(textBoxNumSides, null);
49 | }
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/PopupList.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Progress.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Progress.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Data;
10 | using System.Windows.Documents;
11 | using System.Windows.Input;
12 | using System.Windows.Media;
13 | using System.Windows.Media.Imaging;
14 | using System.Windows.Shapes;
15 |
16 | namespace SB_Prime.Dialogs
17 | {
18 | ///
19 | /// Interaction logic for Progress.xaml
20 | ///
21 | public partial class Progress : Window, IDisposable
22 | {
23 | private Timer timer;
24 |
25 | public Progress()
26 | {
27 | InitializeComponent();
28 |
29 | FontSize = 12 + MainWindow.zoom;
30 | }
31 |
32 | private void Window_Loaded(object sender, RoutedEventArgs e)
33 | {
34 | timer = new Timer(new TimerCallback(_timer), null, 10, 10);
35 | }
36 |
37 | private void _timer(object state)
38 | {
39 | try
40 | {
41 | Dispatcher.Invoke(() =>
42 | {
43 | textBoxDir.Text = FileSearcher.ProgressDir;
44 | textBoxFound.Text = FileSearcher.ProgressCount + " files found";
45 | textBoxFailed.Text = FileSearcher.ProgressFailed + " folders or files could not be processed";
46 | if (FileSearcher.ProgressState != 1) Close();
47 | });
48 | }
49 | catch
50 | {
51 | Dispatcher.Invoke(() =>
52 | {
53 | Close();
54 | });
55 | }
56 | }
57 |
58 | private void buttonCancel_Click(object sender, RoutedEventArgs e)
59 | {
60 | FileSearcher.ProgressState = 2;
61 | }
62 |
63 | private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
64 | {
65 | timer.Dispose();
66 | FileSearcher.ProgressState = 2;
67 | }
68 |
69 | protected virtual void Dispose(bool disposing)
70 | {
71 | if (disposing)
72 | {
73 | timer.Dispose();
74 | }
75 | }
76 |
77 | public void Dispose()
78 | {
79 | Dispose(true);
80 | GC.SuppressFinalize(this);
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Publish.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/Publish.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows;
9 | using System.Windows.Controls;
10 | using System.Windows.Data;
11 | using System.Windows.Documents;
12 | using System.Windows.Input;
13 | using System.Windows.Media;
14 | using System.Windows.Media.Imaging;
15 | using System.Windows.Shapes;
16 |
17 | namespace SB_Prime.Dialogs
18 | {
19 | ///
20 | /// Interaction logic for Publish.xaml
21 | ///
22 | public partial class Publish : Window
23 | {
24 | private SBInterop sbInterop;
25 | private string key;
26 |
27 | public Publish(SBInterop sbInterop, string key)
28 | {
29 | this.sbInterop = sbInterop;
30 | this.key = key;
31 | InitializeComponent();
32 |
33 | Topmost = MainWindow.topmost;
34 | FontSize = 12 + MainWindow.zoom;
35 | label.FontSize = 16 + MainWindow.zoom;
36 |
37 | textBoxPublish.Focus();
38 | textBoxPublish.Text = key;
39 | textBoxTitle.Text = "";
40 | textBoxDescription.Text = "";
41 | comboBoxCategory.SelectedIndex = 0;
42 |
43 | Clipboard.SetText(key);
44 | }
45 |
46 | private void buttonClose_Click(object sender, RoutedEventArgs e)
47 | {
48 | ComboBoxItem item = (ComboBoxItem)comboBoxCategory.SelectedItem;
49 | sbInterop.SetDetails(key, textBoxTitle.Text, textBoxDescription.Text, item.Content.ToString());
50 | Close();
51 | }
52 |
53 | private void buttonOpen_Click(object sender, RoutedEventArgs e)
54 | {
55 | if (File.Exists("C:\\Program Files\\internet explorer\\iexplore.exe"))
56 | {
57 | Process.Start("C:\\Program Files\\internet explorer\\iexplore.exe", "http://smallbasic.com/program/?" + key);
58 | }
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/StackVariables.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/SB-Prime/Dialogs/StackVariables.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Collections.ObjectModel;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Data;
10 | using System.Windows.Documents;
11 | using System.Windows.Input;
12 | using System.Windows.Media;
13 | using System.Windows.Media.Imaging;
14 | using System.Windows.Shapes;
15 |
16 | namespace SB_Prime.Dialogs
17 | {
18 | ///
19 | /// Interaction logic for StackVariables.xaml
20 | ///
21 | public partial class StackVariables : Window
22 | {
23 | public static bool Active = false;
24 | private MainWindow mainWindow;
25 |
26 | public ObservableCollection variables = new ObservableCollection();
27 | public ObservableCollection stacks = new ObservableCollection();
28 |
29 | public StackVariables(MainWindow mainWindow)
30 | {
31 | this.mainWindow = mainWindow;
32 |
33 | InitializeComponent();
34 |
35 | Topmost = MainWindow.topmost;
36 | FontSize = 12 + MainWindow.zoom;
37 |
38 | dataGridVariables.ItemsSource = variables;
39 | dataGridStack.ItemsSource = stacks;
40 |
41 | Left = SystemParameters.PrimaryScreenWidth - Width - 20;
42 | Top = (SystemParameters.PrimaryScreenHeight - Height) / 2;
43 | }
44 |
45 | private void Window_Deactivated(object sender, EventArgs e)
46 | {
47 | Topmost = MainWindow.topmost;
48 | Activate();
49 | }
50 |
51 | private void Window_Loaded(object sender, RoutedEventArgs e)
52 | {
53 | Active = true;
54 | MainWindow.GetStackVariables = true;
55 | }
56 |
57 | private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
58 | {
59 | Active = false;
60 | MainWindow.GetStackVariables = false;
61 | }
62 |
63 | public void Update()
64 | {
65 | variables.Clear();
66 | foreach (KeyValuePair kvp in mainWindow.GetActiveDocument().debug.Variables)
67 | {
68 | variables.Add(new VariableData() { Variable = kvp.Key, Value = kvp.Value });
69 | }
70 |
71 | stacks.Clear();
72 | foreach (string stack in mainWindow.GetActiveDocument().debug.CallStack)
73 | {
74 | stacks.Add(new StackData() { Stack = stack });
75 | }
76 | }
77 | }
78 |
79 | public class VariableData
80 | {
81 | public string Variable { get; set; }
82 | public string Value { get; set; }
83 | }
84 |
85 | public class StackData
86 | {
87 | public string Stack { get; set; }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/SB-Prime/FileFilter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Text.RegularExpressions;
7 | using System.Threading.Tasks;
8 |
9 | namespace SB_Prime
10 | {
11 | public static class FileFilter
12 | {
13 | private static Dictionary aliases = new Dictionary();
14 | private static Dictionary allAliases = new Dictionary();
15 | public static bool EnableAliases = true;
16 |
17 | public static Dictionary Aliases
18 | {
19 | get
20 | {
21 | return aliases;
22 | }
23 | }
24 |
25 | public static Dictionary AllAliases
26 | {
27 | get
28 | {
29 | return allAliases;
30 | }
31 | }
32 |
33 | public static void WriteAllText(string path, string contents)
34 | {
35 | File.WriteAllText(path, Write(contents));
36 | }
37 |
38 | public static void WriteAllLines(string path, string[] contents)
39 | {
40 | File.WriteAllLines(path, Write(contents));
41 | }
42 |
43 | public static void WriteAllLines(string path, List contents)
44 | {
45 | File.WriteAllLines(path, Write(contents));
46 | }
47 |
48 | public static string ReadAllText(string path)
49 | {
50 | return Read(File.ReadAllText(path));
51 | }
52 |
53 | public static string[] ReadAllLines(string path)
54 | {
55 | return Read(File.ReadAllLines(path));
56 | }
57 |
58 | public static IEnumerable ReadLines(string path)
59 | {
60 | return Read(File.ReadLines(path));
61 | }
62 |
63 | public static string Write(string text, bool appendDot = true)
64 | {
65 | string result = text;
66 | if (EnableAliases)
67 | {
68 | if (appendDot)
69 | {
70 | foreach (KeyValuePair kvp in Aliases)
71 | {
72 | result = Regex.Replace(result, @"\b" + kvp.Value + @"\.", kvp.Key + @".", RegexOptions.IgnoreCase);
73 | result = Regex.Replace(result, @"\." + kvp.Value + @"\b", @"." + kvp.Key, RegexOptions.IgnoreCase);
74 | }
75 | }
76 | else
77 | {
78 | foreach (KeyValuePair kvp in Aliases)
79 | {
80 | result = Regex.Replace(result, @"\b" + kvp.Value + @"\b", kvp.Key, RegexOptions.IgnoreCase);
81 | }
82 | }
83 | }
84 | return result;
85 | }
86 |
87 | private static string[] Write(string[] text)
88 | {
89 | string[] result = text;
90 | foreach (KeyValuePair kvp in Aliases)
91 | {
92 | for (int i = 0; i < result.Length; i++)
93 | {
94 | result[i] = Write(result[i]);
95 | }
96 | }
97 | return result;
98 | }
99 |
100 | private static List Write(List text)
101 | {
102 | List result = text;
103 | foreach (KeyValuePair kvp in Aliases)
104 | {
105 | for (int i = 0; i < result.Count; i++)
106 | {
107 | result[i] = Write(result[i]);
108 | }
109 | }
110 | return result;
111 | }
112 |
113 | public static string Read(string text, bool appendDot = true)
114 | {
115 | string result = text;
116 | if (EnableAliases)
117 | {
118 | if (appendDot)
119 | {
120 | foreach (KeyValuePair kvp in Aliases)
121 | {
122 | result = Regex.Replace(result, @"\b" + kvp.Key + @"\.", kvp.Value + @".", RegexOptions.IgnoreCase);
123 | result = Regex.Replace(result, @"\." + kvp.Key + @"\b", @"." + kvp.Value, RegexOptions.IgnoreCase);
124 | }
125 | }
126 | else
127 | {
128 | foreach (KeyValuePair kvp in Aliases)
129 | {
130 | result = Regex.Replace(result, @"\b" + kvp.Key + @"\b", kvp.Value, RegexOptions.IgnoreCase);
131 | }
132 | }
133 | }
134 | return result;
135 | }
136 |
137 | private static string[] Read(string[] text)
138 | {
139 | string[] result = text;
140 | foreach (KeyValuePair kvp in Aliases)
141 | {
142 | for (int i = 0; i < result.Length; i++)
143 | {
144 | result[i] = Read(result[i]);
145 | }
146 | }
147 | return result;
148 | }
149 |
150 | private static IEnumerable Read(IEnumerable text)
151 | {
152 | List result = text.ToList();
153 | foreach (KeyValuePair kvp in Aliases)
154 | {
155 | for (int i = 0; i < result.Count; i++)
156 | {
157 | result[i] = Read(result[i]);
158 | }
159 | }
160 | return result;
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/SB-Prime/HotKeyManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows.Forms;
5 |
6 | namespace SB_Prime
7 | {
8 | public class HotKeyManager
9 | {
10 | public static bool Enable = true;
11 |
12 | public static void AddHotKey(Form form, Action function, Keys key, bool ctrl = false, bool shift = false, bool alt = false)
13 | {
14 | form.KeyPreview = true;
15 |
16 | form.KeyDown += delegate (object sender, KeyEventArgs e)
17 | {
18 | if (IsHotkey(e, key, ctrl, shift, alt))
19 | {
20 | function();
21 | }
22 | };
23 | }
24 |
25 | public static void AddHotKey(Control control, Action function, Keys key, bool ctrl = false, bool shift = false, bool alt = false)
26 | {
27 | control.KeyDown += delegate (object sender, KeyEventArgs e)
28 | {
29 | if (IsHotkey(e, key, ctrl, shift, alt))
30 | {
31 | function();
32 | }
33 | };
34 | }
35 |
36 | public static bool IsHotkey(KeyEventArgs eventData, Keys key, bool ctrl = false, bool shift = false, bool alt = false)
37 | {
38 | return eventData.KeyCode == key && eventData.Control == ctrl && eventData.Shift == shift && eventData.Alt == alt;
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/SB-Prime/HowToDebug.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/HowToDebug.docx
--------------------------------------------------------------------------------
/SB-Prime/HowToDebug.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/HowToDebug.pdf
--------------------------------------------------------------------------------
/SB-Prime/Output/Setup.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/Output/Setup.exe
--------------------------------------------------------------------------------
/SB-Prime/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("SB-Prime")]
11 | [assembly: AssemblyDescription("Extended Small Basic IDE")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("LitDev")]
14 | [assembly: AssemblyProduct("SB-Prime")]
15 | [assembly: AssemblyCopyright("Copyright © 2024")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | // Setting ComVisible to false makes the types in this assembly not visible
20 | // to COM components. If you need to access a type in this assembly from
21 | // COM, set the ComVisible attribute to true on that type.
22 | [assembly: ComVisible(false)]
23 |
24 | //In order to begin building localizable applications, set
25 | //CultureYouAreCodingWith in your .csproj file
26 | //inside a . For example, if you are using US english
27 | //in your source files, set the to en-US. Then uncomment
28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
29 | //the line below to match the UICulture setting in the project file.
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
36 | //(used if a resource is not found in the page,
37 | // or application resource dictionaries)
38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
39 | //(used if a resource is not found in the page,
40 | // app, or any theme specific resource dictionaries)
41 | )]
42 |
43 |
44 | // Version information for an assembly consists of the following four values:
45 | //
46 | // Major Version
47 | // Minor Version
48 | // Build Number
49 | // Revision
50 | //
51 | // You can specify all the values or you can default the Build and Revision Numbers
52 | // by using the '*' as shown below:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("1.1.12.0")]
55 | [assembly: AssemblyFileVersion("1.1.12.0")]
56 | [assembly: NeutralResourcesLanguage("")]
57 |
--------------------------------------------------------------------------------
/SB-Prime/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 | False
10 |
11 |
12 | True
13 |
14 |
15 | False
16 |
17 |
18 | 0
19 |
20 |
21 | 0
22 |
23 |
24 |
25 |
26 |
27 | 0
28 |
29 |
30 |
31 |
32 |
33 | 0
34 |
35 |
36 | 0
37 |
38 |
39 | 0
40 |
41 |
42 | 0
43 |
44 |
45 | True
46 |
47 |
48 | 300
49 |
50 |
51 | True
52 |
53 |
54 |
55 |
56 |
57 | 350
58 |
59 |
60 | False
61 |
62 |
63 | False
64 |
65 |
66 | 0
67 |
68 |
69 | True
70 |
71 |
72 | True
73 |
74 |
75 | 0
76 |
77 |
78 | 3
79 |
80 |
81 | True
82 |
83 |
84 | 2
85 |
86 |
87 | а-яА-ЯёЁ\u0900-\u097F\u0621-\u064A\u4E00-\u9FFF
88 |
89 |
90 | True
91 |
92 |
93 | Consolas
94 |
95 |
96 | 1000
97 |
98 |
99 | <?xml version="1.0" encoding="utf-16"?>
100 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
101 |
102 |
103 | <?xml version="1.0" encoding="utf-16"?>
104 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
105 |
106 |
107 | <?xml version="1.0" encoding="utf-16"?>
108 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
109 |
110 |
111 | <?xml version="1.0" encoding="utf-16"?>
112 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
113 |
114 |
115 | <?xml version="1.0" encoding="utf-16"?>
116 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
117 |
118 |
119 | <?xml version="1.0" encoding="utf-16"?>
120 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
121 |
122 |
123 | True
124 |
125 |
126 | <?xml version="1.0" encoding="utf-16"?>
127 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
128 |
129 |
130 | True
131 |
132 |
133 | True
134 |
135 |
136 | True
137 |
138 |
139 | True
140 |
141 |
142 |
--------------------------------------------------------------------------------
/SB-Prime/ResourceHelper.cs:
--------------------------------------------------------------------------------
1 | //The following Copyright applies to SB-Prime for Small Basic and files in the namespace SB_Prime.
2 | //Copyright (C) <2020> litdev@hotmail.co.uk
3 | //This file is part of SB-Prime for Small Basic.
4 |
5 | //SB-Prime for Small Basic is free software: you can redistribute it and/or modify
6 | //it under the terms of the GNU General Public License as published by
7 | //the Free Software Foundation, either version 3 of the License, or
8 | //(at your option) any later version.
9 |
10 | //SB-Prime for Small Basic is distributed in the hope that it will be useful,
11 | //but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | //GNU General Public License for more details.
14 |
15 | //You should have received a copy of the GNU General Public License
16 | //along with SB-Prime for Small Basic. If not, see .
17 |
18 | using System;
19 | using System.Collections.Generic;
20 | using System.Globalization;
21 | using System.IO;
22 | using System.Linq;
23 | using System.Reflection;
24 | using System.Resources;
25 | using System.Windows;
26 | using System.Xml.Linq;
27 | using System.Xml.XPath;
28 |
29 | namespace SB_Prime
30 | {
31 | public static class ResourceHelper
32 | {
33 | private static Dictionary stringResources;
34 |
35 | private static ResourceManager resourceManager;
36 |
37 | static ResourceHelper()
38 | {
39 | Assembly executingAssembly = Assembly.GetExecutingAssembly();
40 | ResourceHelper.resourceManager = new ResourceManager("SB_Prime.Strings", executingAssembly);
41 | string directoryName = Path.GetDirectoryName(executingAssembly.Location);
42 | CultureInfo currentUICulture = CultureInfo.CurrentUICulture;
43 | string text = Path.Combine(directoryName, string.Format(CultureInfo.InvariantCulture, "strings.{0}.resx", new object[]
44 | {
45 | currentUICulture.IetfLanguageTag
46 | }));
47 | if (!File.Exists(text))
48 | {
49 | text = Path.Combine(directoryName, string.Format(CultureInfo.InvariantCulture, "strings.{0}.resx", new object[]
50 | {
51 | currentUICulture.TwoLetterISOLanguageName
52 | }));
53 | if (!File.Exists(text))
54 | {
55 | text = Path.Combine(directoryName, string.Format(CultureInfo.InvariantCulture, "strings.{0}.resx", new object[]
56 | {
57 | (currentUICulture.Parent == null) ? currentUICulture.IetfLanguageTag : currentUICulture.Parent.IetfLanguageTag
58 | }));
59 | if (!File.Exists(text))
60 | {
61 | text = Path.Combine(directoryName, "strings.resx");
62 | if (!File.Exists(text))
63 | {
64 | return;
65 | }
66 | }
67 | }
68 | }
69 | IEnumerable> source = ResourceHelper.FromResX(text);
70 | ResourceHelper.stringResources = source.ToDictionary((KeyValuePair c) => c.Key, (KeyValuePair c) => c.Value);
71 | }
72 |
73 | public static string GetString(string key)
74 | {
75 | string result = null;
76 | if (ResourceHelper.stringResources != null && ResourceHelper.stringResources.TryGetValue(key, out result))
77 | {
78 | return result;
79 | }
80 | string result2;
81 | try
82 | {
83 | result2 = ResourceHelper.resourceManager.GetString(key);
84 | }
85 | catch
86 | {
87 | MessageBox.Show(Properties.Strings.String56, "Small Basic", MessageBoxButton.OK, MessageBoxImage.Hand);
88 | Environment.Exit(-1);
89 | result2 = null;
90 | }
91 | return result2;
92 | }
93 |
94 | private static IEnumerable> FromResX(string resxFileName)
95 | {
96 | return ResourceHelper.FromResX(new StreamReader(resxFileName));
97 | }
98 |
99 | private static IEnumerable> FromResX(TextReader reader)
100 | {
101 | XDocument node = XDocument.Load(reader);
102 | return from xe in node.XPathSelectElements("/root/data")
103 | let attributes = xe.Attributes()
104 | let name =
105 | from attribute in attributes
106 | where attribute.Name.LocalName == "name"
107 | select attribute.Value
108 | let elements = xe.Elements()
109 | let value =
110 | from element in elements
111 | where element.Name.LocalName == "value"
112 | select element.Value
113 | select new KeyValuePair(name.First(), value.First());
114 | }
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/SB-Prime/SB-Prime.iss:
--------------------------------------------------------------------------------
1 | ; Script generated by the Inno Setup Script Wizard.
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3 |
4 | #define MyAppName "SB-Prime"
5 | #define MyAppVersion "1.1.12.0"
6 | #define MyAppPublisher "LitDev"
7 | #define MyAppURL "https://litdev.uk/"
8 | #define MyAppExeName "SB-Prime.exe"
9 | #define MyAppAssocName "SB File"
10 | #define MyAppAssocExt ".sb"
11 | #define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt
12 |
13 | [Setup]
14 | ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
15 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
16 | AppId={{591E9C01-CE05-45DC-9417-31EBD66D8221}
17 | AppName={#MyAppName}
18 | AppVersion={#MyAppVersion}
19 | ;AppVerName={#MyAppName} {#MyAppVersion}
20 | AppPublisher={#MyAppPublisher}
21 | AppPublisherURL={#MyAppURL}
22 | AppSupportURL={#MyAppURL}
23 | AppUpdatesURL={#MyAppURL}
24 | DefaultDirName={autopf}\{#MyAppName}
25 | ChangesAssociations=yes
26 | DisableProgramGroupPage=yes
27 | ; Uncomment the following line to run in non administrative install mode (install for current user only.)
28 | ;PrivilegesRequired=lowest
29 | OutputBaseFilename=Setup
30 | SetupIconFile=C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\AppIcon.ico
31 | Compression=lzma
32 | SolidCompression=yes
33 | WizardStyle=modern
34 |
35 | [Languages]
36 | Name: "english"; MessagesFile: "compiler:Default.isl"
37 | Name: "french"; MessagesFile: "compiler:Languages\French.isl"
38 | Name: "german"; MessagesFile: "compiler:Languages\German.isl"
39 | Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
40 | Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
41 | Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
42 | Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
43 | Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
44 |
45 | [Tasks]
46 | Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
47 |
48 | [Files]
49 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
50 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\AvalonDock.dll"; DestDir: "{app}"; Flags: ignoreversion
51 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\AvalonDock.Themes.Aero.dll"; DestDir: "{app}"; Flags: ignoreversion
52 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\AvalonDock.Themes.Expression.dll"; DestDir: "{app}"; Flags: ignoreversion
53 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\AvalonDock.Themes.Metro.dll"; DestDir: "{app}"; Flags: ignoreversion
54 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\AvalonDock.Themes.VS2013.dll"; DestDir: "{app}"; Flags: ignoreversion
55 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\ExtensionManagerLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion
56 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\Humanizer.dll"; DestDir: "{app}"; Flags: ignoreversion
57 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\ICSharpCode.Decompiler.dll"; DestDir: "{app}"; Flags: ignoreversion
58 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\Ionic.Zip.dll"; DestDir: "{app}"; Flags: ignoreversion
59 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\SBPlugins.dll"; DestDir: "{app}"; Flags: ignoreversion
60 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\SB-Prime.exe.config"; DestDir: "{app}"; Flags: ignoreversion
61 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\SB-Prime.exe.manifest"; DestDir: "{app}"; Flags: ignoreversion
62 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\Scintilla.NET.dll"; DestDir: "{app}"; Flags: ignoreversion
63 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\System.Buffers.dll"; DestDir: "{app}"; Flags: ignoreversion
64 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\System.Collections.Immutable.dll"; DestDir: "{app}"; Flags: ignoreversion
65 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\System.Memory.dll"; DestDir: "{app}"; Flags: ignoreversion
66 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\System.Numerics.Vectors.dll"; DestDir: "{app}"; Flags: ignoreversion
67 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\System.Reflection.Metadata.dll"; DestDir: "{app}"; Flags: ignoreversion
68 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\System.Runtime.CompilerServices.Unsafe.dll"; DestDir: "{app}"; Flags: ignoreversion
69 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\System.Windows.Controls.Ribbon.dll"; DestDir: "{app}"; Flags: ignoreversion
70 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\Update.exe"; DestDir: "{app}"; Flags: ignoreversion
71 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\x64\*"; DestDir: "{app}\x64"; Flags: ignoreversion recursesubdirs createallsubdirs
72 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\x86\*"; DestDir: "{app}\x86"; Flags: ignoreversion recursesubdirs createallsubdirs
73 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\ar\*"; DestDir: "{app}\ar"; Flags: ignoreversion recursesubdirs createallsubdirs
74 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\de\*"; DestDir: "{app}\de"; Flags: ignoreversion recursesubdirs createallsubdirs
75 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\es\*"; DestDir: "{app}\es"; Flags: ignoreversion recursesubdirs createallsubdirs
76 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\fr\*"; DestDir: "{app}\fr"; Flags: ignoreversion recursesubdirs createallsubdirs
77 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\hi\*"; DestDir: "{app}\hi"; Flags: ignoreversion recursesubdirs createallsubdirs
78 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\no\*"; DestDir: "{app}\no"; Flags: ignoreversion recursesubdirs createallsubdirs
79 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\pl\*"; DestDir: "{app}\pl"; Flags: ignoreversion recursesubdirs createallsubdirs
80 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\ru\*"; DestDir: "{app}\ru"; Flags: ignoreversion recursesubdirs createallsubdirs
81 | Source: "C:\Users\steve\source\repos\litdev1\SB-IDE\SB-Prime\bin\Release\zh\*"; DestDir: "{app}\zh"; Flags: ignoreversion recursesubdirs createallsubdirs
82 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
83 |
84 | [Registry]
85 | Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
86 | Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
87 | Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
88 | Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
89 | Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: ""
90 |
91 | [Icons]
92 | Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
93 | Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
94 |
95 | [Run]
96 | Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
97 |
98 |
--------------------------------------------------------------------------------
/SB-Prime/SBDiff.cs:
--------------------------------------------------------------------------------
1 | //The following Copyright applies to SB-Prime for Small Basic and files in the namespace SB_Prime.
2 | //Copyright (C) <2020> litdev@hotmail.co.uk
3 | //This file is part of SB-Prime for Small Basic.
4 |
5 | //SB-Prime for Small Basic is free software: you can redistribute it and/or modify
6 | //it under the terms of the GNU General Public License as published by
7 | //the Free Software Foundation, either version 3 of the License, or
8 | //(at your option) any later version.
9 |
10 | //SB-Prime for Small Basic is distributed in the hope that it will be useful,
11 | //but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | //GNU General Public License for more details.
14 |
15 | //You should have received a copy of the GNU General Public License
16 | //along with SB-Prime for Small Basic. If not, see .
17 |
18 | using my.utils;
19 | using ScintillaNET;
20 | using System;
21 | using System.Collections.Generic;
22 | using System.Linq;
23 | using System.Text;
24 | using System.Threading;
25 | using System.Threading.Tasks;
26 | using System.Windows.Controls;
27 |
28 | namespace SB_Prime
29 | {
30 | static class SBDiff
31 | {
32 | public static bool bEndDiff = false;
33 | public static SBDocument doc1 = null;
34 | public static SBDocument doc2 = null;
35 |
36 | private static bool bShowDiff = false;
37 | private static Timer timer = new Timer(_timer, null, 1000, 1000);
38 | private static bool bRefresh = false;
39 |
40 | private static void _timer(object state)
41 | {
42 | try
43 | {
44 | MainWindow.THIS.Dispatcher.Invoke(() =>
45 | {
46 | if (bEndDiff)
47 | {
48 | ClearDiff();
49 | doc1 = null;
50 | doc2 = null;
51 | bEndDiff = false;
52 | }
53 | if (bRefresh) ClearDiff();
54 | if (null != doc1 && null == doc1.Layout.Content) doc1 = null;
55 | if (null != doc2 && null == doc2.Layout.Content) doc2 = null;
56 | bShowDiff = null != doc1 || null != doc2;
57 | if (bShowDiff)
58 | {
59 | SetDiff();
60 | bRefresh = true;
61 | }
62 | else
63 | {
64 | bRefresh = false;
65 | }
66 | });
67 | }
68 | catch
69 | {
70 |
71 | }
72 | }
73 |
74 | public static void UpdateDiff()
75 | {
76 | bShowDiff = !bShowDiff;
77 | }
78 |
79 | private static void SetDiff()
80 | {
81 | if (null == doc1 || null == doc2 || doc1 == doc2 || null == doc1.Layout.Content || null == doc2.Layout.Content) return;
82 |
83 | Diff.Item[] items = Diff.DiffText(doc1.TextArea.Text, doc2.TextArea.Text, true, true, true);
84 | foreach (Diff.Item item in items)
85 | {
86 | Marker marker1 = doc1.TextArea.Markers[SBDocument.DELETED_MARKER];
87 | marker1.Symbol = MarkerSymbol.Background;
88 | marker1.SetBackColor(SBDocument.IntToColor(MainWindow.DELETED_HIGHLIGHT_COLOR));
89 | for (int i = item.StartA; i < item.StartA + item.deletedA; i++)
90 | {
91 | doc1.TextArea.Lines[i].MarkerAdd(SBDocument.DELETED_MARKER);
92 | }
93 | Marker marker2 = doc2.TextArea.Markers[SBDocument.INSERTED_MARKER];
94 | marker2.Symbol = MarkerSymbol.Background;
95 | marker2.SetBackColor(SBDocument.IntToColor(MainWindow.INSERTED_HIGHLIGHT_COLOR));
96 | for (int i = item.StartB; i < item.StartB + item.insertedB; i++)
97 | {
98 | doc2.TextArea.Lines[i].MarkerAdd(SBDocument.INSERTED_MARKER);
99 | }
100 | }
101 | }
102 |
103 | private static void ClearDiff()
104 | {
105 | try
106 | {
107 | if (null != doc1 && null != doc1.Layout.Content)
108 | {
109 | foreach (Line line in doc1.TextArea.Lines)
110 | {
111 | line.MarkerDelete(SBDocument.DELETED_MARKER);
112 | line.MarkerDelete(SBDocument.INSERTED_MARKER);
113 | }
114 | }
115 | if (null != doc2 & null != doc2.Layout.Content)
116 | {
117 | foreach (Line line in doc2.TextArea.Lines)
118 | {
119 | line.MarkerDelete(SBDocument.DELETED_MARKER);
120 | line.MarkerDelete(SBDocument.INSERTED_MARKER);
121 | }
122 | }
123 | }
124 | catch (Exception ex)
125 | {
126 | doc1 = null;
127 | doc2 = null;
128 | }
129 | }
130 | }
131 | }
132 |
--------------------------------------------------------------------------------
/SB-Prime/SBPlugin.cs:
--------------------------------------------------------------------------------
1 | //The following Copyright applies to SB-Prime for Small Basic and files in the namespace SB_Prime.
2 | //Copyright (C) <2020> litdev@hotmail.co.uk
3 | //This file is part of SB-Prime for Small Basic.
4 |
5 | //SB-Prime for Small Basic is free software: you can redistribute it and/or modify
6 | //it under the terms of the GNU General Public License as published by
7 | //the Free Software Foundation, either version 3 of the License, or
8 | //(at your option) any later version.
9 |
10 | //SB-Prime for Small Basic is distributed in the hope that it will be useful,
11 | //but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | //GNU General Public License for more details.
14 |
15 | //You should have received a copy of the GNU General Public License
16 | //along with SB-Prime for Small Basic. If not, see .
17 |
18 | using System;
19 | using System.Collections.Generic;
20 | using System.Drawing;
21 | using System.IO;
22 | using System.Linq;
23 | using System.Reflection;
24 | using System.Text;
25 | using System.Threading.Tasks;
26 | using System.Windows;
27 | using System.Windows.Controls.Ribbon;
28 |
29 | namespace SB_Prime
30 | {
31 | public class SBplugin
32 | {
33 | List plugins = new List();
34 | MainWindow mainWindow;
35 |
36 | public SBplugin(MainWindow mainWindow)
37 | {
38 | this.mainWindow = mainWindow;
39 |
40 | try
41 | {
42 | bool bCreated = false;
43 | RibbonTab tab = new RibbonTab() { Header = "Plugins", KeyTip = "P" };
44 |
45 | string path = mainWindow.exeFolder + "\\plugins";
46 | if (!Directory.Exists(path)) return;
47 |
48 | string[] dlls = Directory.GetFiles(path, "*.dll");
49 | foreach (string dll in dlls)
50 | {
51 | Assembly assembly = Assembly.LoadFrom(dll);
52 | RibbonGroup group = new RibbonGroup() { Header = Path.GetFileNameWithoutExtension(path) };
53 | tab.Items.Add(group);
54 |
55 | Type[] types = assembly.GetTypes();
56 | foreach (Type type in types)
57 | {
58 | if (type.IsPublic && type.IsDefined(typeof(SBpluginAttribute), false))
59 | {
60 | if (null != GetValue(type, "GetGroupName")) group.Header = (string)GetValue(type, "GetGroupName");
61 |
62 | Plugin plugin = new Plugin(mainWindow);
63 | plugins.Add(plugin);
64 | plugin.type = type;
65 | if (null != GetValue(type, "GetName")) plugin.name = (string)GetValue(type, "GetName");
66 | if (null != GetValue(type, "GetBitmap")) plugin.bitmap = (Bitmap)GetValue(type, "GetBitmap");
67 | if (null != GetValue(type, "LargeButton")) plugin.largeButton = (bool)GetValue(type, "LargeButton");
68 | if (null != GetValue(type, "GetToolTip")) plugin.tooltip = (string)GetValue(type, "GetToolTip");
69 | MethodInfo[] methods = type.GetMethods(BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Static);
70 | foreach (MethodInfo method in methods)
71 | {
72 | ParameterInfo[] args = method.GetParameters();
73 | if (args.Length == 1 && args[0].ParameterType == typeof(string))
74 | plugin.runText = method;
75 | if (args.Length == 1 && args[0].ParameterType == typeof(MainWindow))
76 | plugin.runMainWindow = method;
77 | }
78 |
79 | if (plugin.name != "" && (null != plugin.runText || null != plugin.runMainWindow))
80 | {
81 | if (!bCreated) mainWindow.ribbon.Items.Add(tab);
82 | bCreated = true;
83 | RibbonButton button = new RibbonButton() { Label = plugin.name };
84 | if (plugin.tooltip != "") button.ToolTip = plugin.tooltip;
85 | if (plugin.largeButton) button.LargeImageSource = MainWindow.ImageSourceFromBitmap(plugin.bitmap);
86 | else button.SmallImageSource = MainWindow.ImageSourceFromBitmap(plugin.bitmap);
87 | group.Items.Add(button);
88 | button.Click += new RoutedEventHandler(pluginClick);
89 | button.Tag = plugin;
90 | }
91 | else
92 | {
93 | MainWindow.Errors.Add(new Error(Properties.Strings.String70 + " " + group.Header));
94 | }
95 | }
96 | }
97 | }
98 | }
99 | catch (Exception ex)
100 | {
101 | MainWindow.Errors.Add(new Error("Plugin Add : " + ex.Message));
102 | }
103 | }
104 |
105 | private object GetValue(Type type, string name)
106 | {
107 | try
108 | {
109 | MethodInfo method = type.GetMethod(name, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Static);
110 | return method.Invoke(null, new object[] { });
111 | }
112 | catch (Exception ex)
113 | {
114 | MainWindow.Errors.Add(new Error("Plugin GetValue : " + ex.Message));
115 | return null;
116 | }
117 | }
118 |
119 | private void pluginClick(object sender, RoutedEventArgs e)
120 | {
121 | try
122 | {
123 | RibbonButton button = (RibbonButton)sender;
124 | Plugin plugin = (Plugin)button.Tag;
125 | if (null != plugin.runText) plugin.runText.Invoke(null, new object[] { mainWindow.GetActiveDocument().TextArea.Text });
126 | if (null != plugin.runMainWindow) plugin.runMainWindow.Invoke(null, new object[] { mainWindow });
127 | }
128 | catch (Exception ex)
129 | {
130 | MainWindow.Errors.Add(new Error("Plugin Run : " + ex.Message));
131 | }
132 | }
133 | }
134 |
135 | public class Plugin
136 | {
137 | MainWindow mainindow;
138 |
139 | public string name;
140 | public Bitmap bitmap;
141 | public bool largeButton;
142 | public string tooltip;
143 | public MethodInfo runText;
144 | public MethodInfo runMainWindow;
145 | public Type type;
146 |
147 | public Plugin(MainWindow mainindow)
148 | {
149 | this.mainindow = mainindow;
150 | name = "";
151 | bitmap = Properties.Resources.Plugin;
152 | largeButton = true;
153 | tooltip = "";
154 | runText = null;
155 | runMainWindow = null;
156 | type = null;
157 | }
158 | }
159 | }
160 |
--------------------------------------------------------------------------------
/SB-Prime/SearchManager.cs:
--------------------------------------------------------------------------------
1 | using ScintillaNET;
2 | using System.Text.RegularExpressions;
3 | using System.Windows.Controls;
4 |
5 | namespace SB_Prime
6 | {
7 | public class SearchManager
8 | {
9 | public Scintilla TextArea;
10 | public string LastHighLight = "";
11 |
12 | public void Find(bool next, string search)
13 | {
14 | if (search.Length > 0)
15 | {
16 | if (next)
17 | {
18 | // SEARCH FOR THE NEXT OCCURANCE
19 |
20 | // Search the document from the caret onwards
21 | TextArea.TargetStart = TextArea.CurrentPosition;
22 | TextArea.TargetEnd = TextArea.TextLength;
23 | TextArea.SearchFlags = MainWindow.searchFlags;
24 |
25 | // Search, and if not found..
26 | if (TextArea.SearchInTarget(search) == -1)
27 | {
28 | // Search again from top
29 | TextArea.TargetStart = 0;
30 | TextArea.TargetEnd = TextArea.TextLength;
31 |
32 | // Search, and if not found..
33 | if (TextArea.SearchInTarget(search) == -1)
34 | {
35 | // clear selection and exit
36 | TextArea.ClearSelections();
37 | return;
38 | }
39 | }
40 | }
41 | else
42 | {
43 | // SEARCH FOR THE PREVIOUS OCCURANCE
44 |
45 | // Search the document from the caret backwards
46 | TextArea.TargetStart = TextArea.CurrentPosition - 1;
47 | TextArea.TargetEnd = 0;
48 | TextArea.SearchFlags = MainWindow.searchFlags;
49 |
50 | // Search, and if not found..
51 | if (TextArea.SearchInTarget(search) == -1)
52 | {
53 | // Search again from top
54 | TextArea.TargetStart = TextArea.TextLength;
55 | TextArea.TargetEnd = 0;
56 |
57 | // Search, and if not found..
58 | if (TextArea.SearchInTarget(search) == -1)
59 | {
60 | // clear selection and exit
61 | TextArea.ClearSelections();
62 | return;
63 | }
64 | }
65 | }
66 |
67 | // Select the occurance
68 | TextArea.SetSelection(TextArea.TargetEnd, TextArea.TargetStart);
69 | TextArea.ScrollCaret();
70 | HighLight(MainWindow.highlightAll ? search : "");
71 | }
72 | }
73 |
74 | public void HighLight(string search)
75 | {
76 | LastHighLight = search;
77 |
78 | TextArea.IndicatorClearRange(0, TextArea.TextLength);
79 |
80 | if (search.Length > 0)
81 | {
82 | TextArea.Indicators[0].ForeColor = SBDocument.IntToColor(MainWindow.FIND_HIGHLIGHT_COLOR);
83 | TextArea.Indicators[0].Style = IndicatorStyle.RoundBox;
84 |
85 | TextArea.TargetStart = 0;
86 | TextArea.TargetEnd = TextArea.TextLength;
87 | TextArea.SearchFlags = MainWindow.searchFlags;
88 | while (TextArea.SearchInTarget(search) != -1)
89 | {
90 | // Mark the search results with the current indicator
91 | if (TextArea.TargetStart != TextArea.SelectionStart)
92 | {
93 | TextArea.IndicatorFillRange(TextArea.TargetStart, TextArea.TargetEnd - TextArea.TargetStart);
94 | }
95 |
96 | // Search the remainder of the document
97 | int iEnd = TextArea.TargetEnd;
98 | TextArea.TargetStart = iEnd;
99 | if (TextArea.TargetStart != iEnd) break; //No idea why this is necessary sometimes
100 | TextArea.TargetEnd = TextArea.TextLength;
101 | }
102 |
103 | //RegexOptions caseSensitive = RegexOptions.IgnoreCase;
104 | //MatchCollection matches = Regex.Matches(TextArea.Text, search, caseSensitive);
105 | //foreach (Match match in matches)
106 | //{
107 | // TextArea.IndicatorFillRange(match.Index, match.Length);
108 | //}
109 | }
110 | }
111 | }
112 | }
113 |
--------------------------------------------------------------------------------
/SB-Prime/Settings.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Reflection;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace SB_Prime
10 | {
11 | public class Setting
12 | {
13 | private string key;
14 | private string property;
15 |
16 | public string Key
17 | {
18 | get { return key.ToUpper(); }
19 | set { key = value.ToUpper(); }
20 | }
21 |
22 | public string Property
23 | {
24 | get { return property; }
25 | set { property = value; }
26 | }
27 |
28 | public Setting(string key, string property)
29 | {
30 | this.key = key.ToUpper();
31 | this.property = property;
32 | }
33 | }
34 |
35 | public static class Settings
36 | {
37 | private static List settings = null;
38 |
39 | private static void Initialise()
40 | {
41 | settings = new List();
42 | try
43 | {
44 | string settingsPath = Path.ChangeExtension(Assembly.GetExecutingAssembly().Location, "settings");
45 | if (File.Exists(settingsPath))
46 | {
47 | using (StreamReader stream = new StreamReader(settingsPath))
48 | {
49 | string line = stream.ReadLine();
50 | while (null != line)
51 | {
52 | string[] setting = line.Split(new char[] { '#' });
53 | settings.Add(new Setting(setting[1].Trim(), setting[0].Trim()));
54 | line = stream.ReadLine();
55 | }
56 | }
57 | }
58 | }
59 | catch (Exception ex)
60 | {
61 |
62 | }
63 | }
64 |
65 | public static List GetValues(string key)
66 | {
67 | if (null == settings) Initialise();
68 |
69 | List values = new List();
70 | foreach (Setting setting in settings)
71 | {
72 | if (setting.Key == key.ToUpper()) values.Add(setting.Property);
73 | }
74 | return values;
75 | }
76 |
77 | public static string GetValue(string key)
78 | {
79 | if (null == settings) Initialise();
80 |
81 | foreach (Setting setting in settings)
82 | {
83 | if (setting.Key == key.ToUpper()) return setting.Property;
84 | }
85 | return "";
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/SB-Prime/Settings1.cs:
--------------------------------------------------------------------------------
1 | namespace SB_Prime.Properties {
2 |
3 |
4 | // This class allows you to handle specific events on the settings class:
5 | // The SettingChanging event is raised before a setting's value is changed.
6 | // The PropertyChanged event is raised after a setting's value is changed.
7 | // The SettingsLoaded event is raised after the setting values are loaded.
8 | // The SettingsSaving event is raised before the setting values are saved.
9 | internal sealed partial class Settings {
10 |
11 | public Settings() {
12 | // // To add event handlers for saving and changing settings, uncomment the lines below:
13 | //
14 | // this.SettingChanging += this.SettingChangingEventHandler;
15 | //
16 | // this.SettingsSaving += this.SettingsSavingEventHandler;
17 | //
18 | }
19 |
20 | private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
21 | // Add code to handle the SettingChangingEvent event here.
22 | }
23 |
24 | private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
25 | // Add code to handle the SettingsSaving event here.
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/SB-Prime/SintillaNetPrinting/Printing.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 | using System.Windows.Forms;
4 | using System.Drawing.Printing;
5 | using ScintillaNET;
6 |
7 | namespace ScintillaPrinting
8 | {
9 | [TypeConverterAttribute(typeof(System.ComponentModel.ExpandableObjectConverter))]
10 | public class Printing
11 | {
12 | public Scintilla scintilla { get; set; }
13 | internal Printing(Scintilla scintilla)
14 | {
15 | _printDocument = new PrintDocument(scintilla);
16 | }
17 |
18 | internal bool ShouldSerialize()
19 | {
20 | return ShouldSerializePageSettings() || ShouldSerializePrintDocument();
21 | }
22 |
23 | public bool Print()
24 | {
25 | return Print(true);
26 | }
27 |
28 | public bool Print(bool showPrintDialog)
29 | {
30 | try
31 | {
32 | if (showPrintDialog)
33 | {
34 | PrintDialog pd = new PrintDialog();
35 | pd.Document = _printDocument;
36 | pd.UseEXDialog = true;
37 | pd.AllowCurrentPage = false;
38 | pd.AllowSelection = true;
39 | pd.AllowSomePages = false;
40 | pd.PrinterSettings = PageSettings.PrinterSettings;
41 |
42 | if (pd.ShowDialog(scintilla) == DialogResult.OK)
43 | {
44 | _printDocument.PrinterSettings = pd.PrinterSettings;
45 | _printDocument.Print();
46 | return true;
47 | }
48 |
49 | return false;
50 | }
51 |
52 | _printDocument.Print();
53 | return true;
54 |
55 | }
56 | catch (Exception ex)
57 | {
58 | return false;
59 | }
60 | }
61 |
62 | public DialogResult PrintPreview()
63 | {
64 | PrintPreviewDialog ppd = new PrintPreviewDialog();
65 | ppd.WindowState = FormWindowState.Maximized;
66 |
67 | ppd.Document = _printDocument;
68 | return ppd.ShowDialog();
69 | }
70 |
71 | public DialogResult PrintPreview(IWin32Window owner)
72 | {
73 | PrintPreviewDialog ppd = new PrintPreviewDialog();
74 | ppd.WindowState = FormWindowState.Maximized;
75 |
76 | if (owner is Form)
77 | ppd.Icon = ((Form)owner).Icon;
78 |
79 | ppd.Document = _printDocument;
80 | return ppd.ShowDialog(owner);
81 | }
82 |
83 | public DialogResult ShowPageSetupDialog()
84 | {
85 | PageSetupDialog psd = new PageSetupDialog();
86 | psd.PageSettings = PageSettings;
87 | psd.PrinterSettings = PageSettings.PrinterSettings;
88 | return psd.ShowDialog();
89 | }
90 |
91 | public DialogResult ShowPageSetupDialog(IWin32Window owner)
92 | {
93 | PageSetupDialog psd = new PageSetupDialog();
94 | psd.AllowPrinter = true;
95 | psd.PageSettings = PageSettings;
96 | psd.PrinterSettings = PageSettings.PrinterSettings;
97 |
98 | return psd.ShowDialog(owner);
99 | }
100 |
101 | private PrintDocument _printDocument;
102 | [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
103 | public PrintDocument PrintDocument
104 | {
105 | get
106 | {
107 | return _printDocument;
108 | }
109 | set
110 | {
111 | _printDocument = value;
112 | }
113 | }
114 |
115 | private bool ShouldSerializePrintDocument()
116 | {
117 | return _printDocument.ShouldSerialize();
118 | }
119 |
120 |
121 | [Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
122 | public PageSettings PageSettings
123 | {
124 | get
125 | {
126 | return _printDocument.DefaultPageSettings as PageSettings;
127 | }
128 | set
129 | {
130 | _printDocument.DefaultPageSettings = value;
131 | }
132 | }
133 |
134 | private bool ShouldSerializePageSettings()
135 | {
136 | return PageSettings.ShouldSerialize();
137 | }
138 | }
139 | }
140 |
--------------------------------------------------------------------------------
/SB-Prime/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/Thumbs.db
--------------------------------------------------------------------------------
/SB-Prime/images/Add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Add.png
--------------------------------------------------------------------------------
/SB-Prime/images/Aliases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Aliases.png
--------------------------------------------------------------------------------
/SB-Prime/images/AppIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/AppIcon.png
--------------------------------------------------------------------------------
/SB-Prime/images/Arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Arrow.png
--------------------------------------------------------------------------------
/SB-Prime/images/Bookmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Bookmark.png
--------------------------------------------------------------------------------
/SB-Prime/images/BookmarkNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/BookmarkNext.png
--------------------------------------------------------------------------------
/SB-Prime/images/BookmarkOff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/BookmarkOff.png
--------------------------------------------------------------------------------
/SB-Prime/images/BookmarkPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/BookmarkPrevious.png
--------------------------------------------------------------------------------
/SB-Prime/images/Breakpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Breakpoint.png
--------------------------------------------------------------------------------
/SB-Prime/images/BreakpointIgnore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/BreakpointIgnore.png
--------------------------------------------------------------------------------
/SB-Prime/images/BreakpointOff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/BreakpointOff.png
--------------------------------------------------------------------------------
/SB-Prime/images/Close file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Close file.png
--------------------------------------------------------------------------------
/SB-Prime/images/Close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Close.png
--------------------------------------------------------------------------------
/SB-Prime/images/Collapse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Collapse.png
--------------------------------------------------------------------------------
/SB-Prime/images/Color palette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Color palette.png
--------------------------------------------------------------------------------
/SB-Prime/images/Contrast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Contrast.png
--------------------------------------------------------------------------------
/SB-Prime/images/Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Copy.png
--------------------------------------------------------------------------------
/SB-Prime/images/CopyShapes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/CopyShapes.png
--------------------------------------------------------------------------------
/SB-Prime/images/Cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Cut.png
--------------------------------------------------------------------------------
/SB-Prime/images/Delete frame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Delete frame.png
--------------------------------------------------------------------------------
/SB-Prime/images/Delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Delete.png
--------------------------------------------------------------------------------
/SB-Prime/images/Details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Details.png
--------------------------------------------------------------------------------
/SB-Prime/images/Dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Dialog.png
--------------------------------------------------------------------------------
/SB-Prime/images/Difference.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Difference.png
--------------------------------------------------------------------------------
/SB-Prime/images/Down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Down.png
--------------------------------------------------------------------------------
/SB-Prime/images/Erase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Erase.png
--------------------------------------------------------------------------------
/SB-Prime/images/Expand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Expand.png
--------------------------------------------------------------------------------
/SB-Prime/images/Find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Find.png
--------------------------------------------------------------------------------
/SB-Prime/images/Flowchart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Flowchart.png
--------------------------------------------------------------------------------
/SB-Prime/images/Form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Form.png
--------------------------------------------------------------------------------
/SB-Prime/images/Forum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Forum.png
--------------------------------------------------------------------------------
/SB-Prime/images/Frames.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Frames.png
--------------------------------------------------------------------------------
/SB-Prime/images/Graduate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Graduate.png
--------------------------------------------------------------------------------
/SB-Prime/images/Help book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Help book.png
--------------------------------------------------------------------------------
/SB-Prime/images/Help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Help.png
--------------------------------------------------------------------------------
/SB-Prime/images/Highlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Highlight.png
--------------------------------------------------------------------------------
/SB-Prime/images/Import.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Import.png
--------------------------------------------------------------------------------
/SB-Prime/images/Indent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Indent.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseEvent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseEvent.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseKeyword.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseKeyword.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseLabel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseLabel.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseMethod.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseMethod.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseObject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseObject.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseProperty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseProperty.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseSubroutine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseSubroutine.png
--------------------------------------------------------------------------------
/SB-Prime/images/IntellisenseVariable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/IntellisenseVariable.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-7Zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-7Zip.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-Greenfish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-Greenfish.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-ILSpy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-ILSpy.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-Notepad++.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-Notepad++.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-Paint.Net.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-Paint.Net.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-SharpDevelop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-SharpDevelop.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-VS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-VS.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-dnSpy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-dnSpy.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link-dotPeek.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link-dotPeek.png
--------------------------------------------------------------------------------
/SB-Prime/images/Link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Link.png
--------------------------------------------------------------------------------
/SB-Prime/images/List.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/List.png
--------------------------------------------------------------------------------
/SB-Prime/images/Monitors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Monitors.png
--------------------------------------------------------------------------------
/SB-Prime/images/New file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/New file.png
--------------------------------------------------------------------------------
/SB-Prime/images/Next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Next.png
--------------------------------------------------------------------------------
/SB-Prime/images/No_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/No_image.png
--------------------------------------------------------------------------------
/SB-Prime/images/NumberMargin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/NumberMargin.png
--------------------------------------------------------------------------------
/SB-Prime/images/Objects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Objects.png
--------------------------------------------------------------------------------
/SB-Prime/images/Open file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Open file.png
--------------------------------------------------------------------------------
/SB-Prime/images/Options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Options.png
--------------------------------------------------------------------------------
/SB-Prime/images/Pantone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Pantone.png
--------------------------------------------------------------------------------
/SB-Prime/images/Paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Paste.png
--------------------------------------------------------------------------------
/SB-Prime/images/Pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Pause.png
--------------------------------------------------------------------------------
/SB-Prime/images/Play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Play.png
--------------------------------------------------------------------------------
/SB-Prime/images/Plugin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Plugin.png
--------------------------------------------------------------------------------
/SB-Prime/images/Previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Previous.png
--------------------------------------------------------------------------------
/SB-Prime/images/Print.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Print.png
--------------------------------------------------------------------------------
/SB-Prime/images/Publish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Publish.png
--------------------------------------------------------------------------------
/SB-Prime/images/Redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Redo.png
--------------------------------------------------------------------------------
/SB-Prime/images/Save all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Save all.png
--------------------------------------------------------------------------------
/SB-Prime/images/Save as.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Save as.png
--------------------------------------------------------------------------------
/SB-Prime/images/Save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Save.png
--------------------------------------------------------------------------------
/SB-Prime/images/Search computer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Search computer.png
--------------------------------------------------------------------------------
/SB-Prime/images/Search folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Search folder.png
--------------------------------------------------------------------------------
/SB-Prime/images/Selection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Selection.png
--------------------------------------------------------------------------------
/SB-Prime/images/Settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Settings.png
--------------------------------------------------------------------------------
/SB-Prime/images/SettingsLoad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/SettingsLoad.png
--------------------------------------------------------------------------------
/SB-Prime/images/SettingsSave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/SettingsSave.png
--------------------------------------------------------------------------------
/SB-Prime/images/Stars.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Stars.png
--------------------------------------------------------------------------------
/SB-Prime/images/Step.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Step.png
--------------------------------------------------------------------------------
/SB-Prime/images/StepOut.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/StepOut.pdn
--------------------------------------------------------------------------------
/SB-Prime/images/StepOut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/StepOut.png
--------------------------------------------------------------------------------
/SB-Prime/images/StepOver.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/StepOver.pdn
--------------------------------------------------------------------------------
/SB-Prime/images/StepOver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/StepOver.png
--------------------------------------------------------------------------------
/SB-Prime/images/Stop playing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Stop playing.png
--------------------------------------------------------------------------------
/SB-Prime/images/Text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Text.png
--------------------------------------------------------------------------------
/SB-Prime/images/Text_uppercase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Text_uppercase.png
--------------------------------------------------------------------------------
/SB-Prime/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Thumbs.db
--------------------------------------------------------------------------------
/SB-Prime/images/Transform_move.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Transform_move.png
--------------------------------------------------------------------------------
/SB-Prime/images/UnObjects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/UnObjects.png
--------------------------------------------------------------------------------
/SB-Prime/images/Undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Undo.png
--------------------------------------------------------------------------------
/SB-Prime/images/Up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Up.png
--------------------------------------------------------------------------------
/SB-Prime/images/Update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Update.png
--------------------------------------------------------------------------------
/SB-Prime/images/Upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Upload.png
--------------------------------------------------------------------------------
/SB-Prime/images/Web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Web.png
--------------------------------------------------------------------------------
/SB-Prime/images/WhiteSpace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/WhiteSpace.png
--------------------------------------------------------------------------------
/SB-Prime/images/WordWrap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/WordWrap.png
--------------------------------------------------------------------------------
/SB-Prime/images/Writing pencil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Writing pencil.png
--------------------------------------------------------------------------------
/SB-Prime/images/Zoom in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Zoom in.png
--------------------------------------------------------------------------------
/SB-Prime/images/Zoom out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Zoom out.png
--------------------------------------------------------------------------------
/SB-Prime/images/Zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/Zoom.png
--------------------------------------------------------------------------------
/SB-Prime/images/appworkspace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/appworkspace.png
--------------------------------------------------------------------------------
/SB-Prime/images/bug_link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/bug_link.png
--------------------------------------------------------------------------------
/SB-Prime/images/sVB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/sVB.png
--------------------------------------------------------------------------------
/SB-Prime/images/sp.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/sp.pdn
--------------------------------------------------------------------------------
/SB-Prime/images/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/SB-Prime/images/splash.png
--------------------------------------------------------------------------------
/SB-Prime/labels.txt:
--------------------------------------------------------------------------------
1 | Label511 Rating
2 | Label512 Details and rating of published program
3 | Label513 Web Resources
4 | Label514 Upload resources to web (images/sounds)
5 | Label515 User Forum
6 | Label516 Small Basic forum (Q&A for SB, SB-Prime, LitDev)
7 | Label517 LitDev Website
8 | Label518 LitDev website (Additional Small Basic resources)
9 | Label519 Document 1
10 | Label520 Document 1 Content
11 | Label521 Intellisense
12 | Label522 Output
13 | Label523 Debug
14 | Label524 Upload
15 | Label525 Upload resources to web (images)
16 | Label526 This can be Small Basic or Small Visual Basic (sVB), switching compilers and command libraries
17 | Label527 Delete installation folder from list
18 | Label528 Delete
19 | Label529 Parse variables as they are typed
20 | Label530 Include partial matches for auto complete suggestions
21 |
--------------------------------------------------------------------------------
/SB-Prime/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/SBPlugins/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SBPlugins")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SBPlugins")]
13 | [assembly: AssemblyCopyright("Copyright © 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("70c29965-7b5d-4ead-8bf1-33ad8da3586d")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/SBPlugins/SBPlugins.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace SB_Prime
8 | {
9 | public class SBpluginAttribute : Attribute
10 | {
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/SBPlugins/SBPlugins.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {70C29965-7B5D-4EAD-8BF1-33AD8DA3586D}
8 | Library
9 | Properties
10 | SBPlugins
11 | SBPlugins
12 | v4.8
13 | 512
14 |
15 |
16 |
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | pdbonly
27 | true
28 | bin\Release\
29 | TRACE
30 | prompt
31 | 4
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/System.ValueTuple.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/System.ValueTuple.dll
--------------------------------------------------------------------------------
/Update/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Update/AppIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/Update/AppIcon.ico
--------------------------------------------------------------------------------
/Update/Program.cs:
--------------------------------------------------------------------------------
1 | using Ionic.Zip;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Net;
8 | using System.Runtime.InteropServices;
9 | using System.Text;
10 | using System.Threading;
11 | using System.Threading.Tasks;
12 |
13 | namespace Update
14 | {
15 | class Program
16 | {
17 | static void Main(string[] args)
18 | {
19 | string exeFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
20 |
21 | Console.Title = "SB-Prime Update";
22 | Console.WriteLine("Updating SB-Prime...");
23 | Console.WriteLine("Please close all instances of SB-Prime...");
24 | int i = 0;
25 | while (Process.GetProcessesByName("SB-Prime").Count() > 0)
26 | {
27 | if (i == 0) Console.WriteLine("Waiting for SB-Prime to close...");
28 | Thread.Sleep(100);
29 | i++;
30 | }
31 | Updater updater = new Updater(exeFolder);
32 | updater.Update("https://litdev.uk/downloads/SB-Prime.zip");
33 | Console.WriteLine("Restarting SB-Prime...");
34 | Thread.Sleep(100);
35 | Process.Start(exeFolder + "\\SB-Prime.exe");
36 | }
37 | }
38 |
39 | public class Updater
40 | {
41 | [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
42 | [return: MarshalAs(UnmanagedType.Bool)]
43 | private static extern bool DeleteFile(string name);
44 |
45 | private string exeFolder;
46 |
47 | public Updater(string exeFolder)
48 | {
49 | this.exeFolder = exeFolder;
50 | }
51 |
52 | private bool Unblock(string fileName)
53 | {
54 | return DeleteFile(fileName + ":Zone.Identifier");
55 | }
56 |
57 | public void Update(string SBPrimeURL)
58 | {
59 | string tempFolder = GetTempFolder();
60 | string tempZip = Path.GetTempFileName();
61 | try
62 | {
63 | Console.WriteLine("Downloading new files...");
64 | DownloadZip(SBPrimeURL, tempZip);
65 | Console.WriteLine("Unblocking downloaded files...");
66 | Unblock(tempZip);
67 | Console.WriteLine("Replacing downloaded files...");
68 | UnZip(tempZip, tempFolder);
69 | CopyFiles(exeFolder, tempFolder);
70 | foreach (string subFolder in Directory.GetDirectories(tempFolder))
71 | {
72 | string langPath = exeFolder + "\\" + new DirectoryInfo(subFolder).Name;
73 | if (!Directory.Exists(langPath)) Directory.CreateDirectory(langPath);
74 | CopyFiles(langPath, subFolder);
75 | }
76 | string langFile = exeFolder + "\\SB-Prime.resources.dll";
77 | if (File.Exists(langFile)) File.Delete(langFile);
78 | File.Delete(tempZip);
79 | Directory.Delete(tempFolder, true);
80 | }
81 | catch (Exception ex)
82 | {
83 | File.Delete(tempZip);
84 | Directory.Delete(tempFolder, true);
85 | Console.WriteLine("Error : " + ex.Message);
86 | Console.WriteLine("Press a key to close");
87 | Console.ReadKey(true);
88 | }
89 | }
90 |
91 | private string GetTempFolder()
92 | {
93 | int SBEnum = 0;
94 | string folder = Path.Combine(Path.GetTempPath(), "SBPrime" + (SBEnum++).ToString());
95 | while (Directory.Exists(folder) || File.Exists(folder))
96 | {
97 | folder = Path.Combine(Path.GetTempPath(), "SBPrime" + (SBEnum++).ToString());
98 | }
99 | return folder;
100 | }
101 |
102 | private void DownloadZip(string zipURL, string zipFile)
103 | {
104 | FileInfo fileInf = new FileInfo(zipFile);
105 | Uri uri = new Uri(zipURL);
106 | WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
107 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
108 | HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);
109 |
110 | int bufferSize = 2048;
111 | byte[] buffer = new byte[bufferSize];
112 |
113 | using (FileStream fs = fileInf.OpenWrite())
114 | {
115 | WebResponse webResponse = webRequest.GetResponse();
116 | Stream stream = webResponse.GetResponseStream();
117 |
118 | int readCount;
119 | do
120 | {
121 | readCount = stream.Read(buffer, 0, bufferSize);
122 | fs.Write(buffer, 0, readCount);
123 | } while (readCount > 0);
124 | stream.Close();
125 | fs.Close();
126 | webResponse.Close();
127 | }
128 |
129 | bool bSuccess = fileInf.Exists && fileInf.Length > 0;
130 | }
131 |
132 | private void UnZip(string zipFile, string zipFolder)
133 | {
134 | ZipFile zip = ZipFile.Read(zipFile);
135 | zip.ExtractAll(zipFolder, ExtractExistingFileAction.OverwriteSilently);
136 | zip.Dispose();
137 | zip = null;
138 | }
139 |
140 | private void CopyFiles(string outFolder, string zipFolder)
141 | {
142 | foreach (string file in Directory.GetFiles(zipFolder))
143 | {
144 | try
145 | {
146 | if (Path.GetFileName(file) == "Update.exe")
147 | {
148 | File.Copy(file, outFolder + "\\" + Path.GetFileName(file) + "-", true);
149 | }
150 | else
151 | {
152 | File.Copy(file, outFolder + "\\" + Path.GetFileName(file), true);
153 | }
154 | }
155 | catch
156 | {
157 |
158 | }
159 | }
160 | }
161 | }
162 | }
163 |
--------------------------------------------------------------------------------
/Update/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Update")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Update")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("aec84e72-fbf6-4bec-9c28-cef84c31df54")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Update/Update.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {AEC84E72-FBF6-4BEC-9C28-CEF84C31DF54}
8 | Exe
9 | Update
10 | Update
11 | v4.8
12 | 512
13 |
14 |
15 |
16 | x86
17 | true
18 | full
19 | false
20 | ..\SB-Prime\bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | ..\SB-Prime\bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 | AppIcon.ico
36 |
37 |
38 |
39 | ..\Ionic.Zip.dll
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/changeLog:
--------------------------------------------------------------------------------
1 |
2 | Fixes for some 'Find and Replace' issues
3 | Added a couple toggle buttons to show/hide intellisense and split view
4 | Debugging requirement for network connection removed
5 | Reduced cpu usage for large files
6 | Settings (including SB installation location) added to Advanced ribbon tab (version 1.1.2)
7 | Splash screen on startup
8 | Improved wpf defined font insertion
9 | Protection for cases where fonts fail to load correctly
10 | Function keys for some run commands
11 | Fixed Graduate to work with recent versions of Small Basic (version 1.1.1)
12 | Various minor debug and interface fixes
13 | Stack and all variables display tool during debug
14 | Settings import and export
15 | Extension searcher tool added
16 | Colours and fonts insertion, various debug and plugin improvements (version 1.1)
17 | Intellisense hover fix where vaiables are named like keywords
18 | Improved maximized window (with auto hide taskbar)
19 | Improved zoom for all text
20 | Intellisense fixes
21 | Cosmetic improvements and color settings
22 | Interface improvements
23 | Conditional debugging breakpoints
24 | Intellisense fixes
25 | Further plugin extensibility added
26 | Command line file(s) to open (allows TaskBar pinning and openning)
27 | Modified how plugins work to make them more extensible
28 | Improved lexing of keywords
29 | Plugin functionality added
30 | Lexer handles unclosed quote strings
31 | Ribbon Keytips sorted
32 | File searcher added
33 | Improvements to debugging event subroutines
34 | Step over and step out debug options added
35 | Debug pause issue fixed
--------------------------------------------------------------------------------
/localisation.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/litdev1/SB-IDE/d91ae8b4cf75153955f6c6bafc0b241cb8270aa1/localisation.xlsx
--------------------------------------------------------------------------------