Giter VIP home page Giter VIP logo

arma.studio's People

Contributors

x39 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arma.studio's Issues

Implement new Property types

Current property types are not enough to cover the whole range of possible configurations

What still is required:

  • Boolean configuration (Checkbox)
  • itemselection (strings --> listbox/combobox)
  • numeric configuration (numeric up down)
  • KeyBinding type (???)

more may follow

files refs:

Autocomplete is not opening during writing

Steps to reproduce

  1. Open any code file
  2. Start writing a known verb eg. "configFile"
  3. Observe that AutoComplete is not opening
  4. use CTRL+SPACE to open it manually
  5. continue typing
  6. observe that autocomplete closes after typing any character

Issues

  • While step 3 & 6: AutoComplete is closed

Expected

  • While step 3 & 6: AutoComplete should stay open for the whole typing and give player a way to tell what they go for.

Add a way to define special header/footer files

Those special files would be added ontop of every file silently and without being presented editible to the user (alternativly it is editible but globally applied instant)
this allows for creating systems like stacktrace without the chance of one accidently forgetting to add it

Auto-detect Mission script path

A mission script in the documents folder has following script Path when ran ingame:
Path: C:\Users\dedmen\Documents\Arma 3\mpmissions\LoneSoldierVanillaDbgConsole.VR\init.sqf
Ingame: C:\Users\dedmen\Documents\Arma 3\mpmissions\LoneSoldierVanillaDbgConsole.VR\init.sqf
It is most likely the smae with non-mp missions in the documents folder
mpMissions in game folder
Path : F:\Steam\SteamApps\common\Arma 3\MPMissions\LoneSoldierVanillaDbgConsole.VR.pbo
Ingame: mpmissions\__cur_mp.vr\init.sqf
PBOPREFIX is ignored.

#TODO test what happens for folders inside \MPMissions
#TODO test what happens for folders inside documents\arma 3\missions
#TODO test what happens for pbo/folders inside \Missions
#TODO test if results are different when ran from Editor or from local dedicated server

Initial Lint Improvment by caching

By simply saving all info on close and then restoring that info + comparing the change date on the different files, the loading process can be sped up by a large degree

requires additional file to store such info

[CrashReport 2017-07-01 10:56:29] After detaching debugger, removing breakpoints fails

<root>
  <version>0.3.6390.34477</version>
  <report><![CDATA[clicked the debugger detach button (red square) and tried to remove a breakepoint]]></report>
  <stacktrace><![CDATA[Unterbrochene Pipe.
   bei System.IO.Pipes.PipeStream.CheckWriteOperations()
   bei System.IO.Pipes.PipeStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   bei Dedbugger.DebuggerCore.WriteMessage(JsonNode node) in C:\projects\arma-studio\Dedbugger\DebuggerCore.cs:Zeile 270.
   bei Dedbugger.DebuggerCore.RemoveBreakpoint(BreakpointInfo b) in C:\projects\arma-studio\Dedbugger\DebuggerCore.cs:Zeile 292.
   bei ArmA.Studio.DebuggerContext.BreakpointManager_OnBreakPointsChanged(Object sender, BreakPointsChangedEventArgs e) in C:\projects\arma-studio\ArmA.Studio\DebuggerContext.cs:Zeile 118.
   bei System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   bei ArmA.Studio.BreakpointManager.RemoveBreakpoint(ProjectFile pff, Int32 line) in C:\projects\arma-studio\ArmA.Studio\BreakpointManager.cs:Zeile 99.
   bei ArmA.Studio.BreakpointManager.RemoveBreakpoint(BreakpointInfo bpi) in C:\projects\arma-studio\ArmA.Studio\BreakpointManager.cs:Zeile 89.
   bei ArmA.Studio.UI.BreakPointMargin.OnMouseDown(MouseButtonEventArgs e) in C:\projects\arma-studio\ArmA.Studio\UI\BreakPointMargin.cs:Zeile 122.
   bei System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e)
   bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   bei System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   bei System.Windows.Input.InputManager.ProcessStagingArea()
   bei System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   bei System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   bei System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   bei System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   bei System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
]]></stacktrace>
  <trace />
</root>```

Bracket indicator

A Feature that indicates which bracket is closing the selected bracket by highlighting or underlining would definitely help you orientating in your code.

samplebracket

Same would be good for:
[ ]
' '
" "

Maybe you find some more.

All variables use lower-case format

Version: 0.1.6290.31151

Current format is lowercase (eg. setunitloadout).
Expected format is camelCase (eg. setUnitLoadout) as documented on wiki and shown inside Arma.

Aditionally it would be nice if auto-complete would ignore casing and you could type whichever of the above and it would still show proper camelCase commands.

Implement a "skip" option for the workspace path

using a "skip" directory would solve the problem with a workspace beeing needed for the tool to operate

skip directory should be located in the appdata folder
should never be wiped by the tool

Autocomplete popup stays open whilte tabbing out

Steps to reproduce

  1. Start Tool
  2. start typing so that the autocomplete popup opens
  3. press Alt + TAB

Issues

  • popup stays open

Expected

  • popup should be closed

Additional Notes

  • Screenshot

Original

Steps to reproduce

  1. Programm starten
  2. Anfangen zu tippen, dass sich die Variablenübersicht öffnet
    3 Alt + TAB

Issues

  • Übersicht bleibt geöffnet

Expected

  • Übersicht sollte schließen

Additional Notes

  • Screenshot

Check for window being off-screen

For some reason, some users report that the tool starts off-screen

to prevent this, the tool should always double check if it is out of bounds at start

[Critical][CrashReport 2017-07-12 06:19:48] Runtime binding results in crash

<root>
  <version>0.2.6402.7153</version>
  <report><![CDATA[Added a existing file 'INIT.sqf' with content already in it, and it encountered an error
]]></report>
  <stacktrace><![CDATA[Ambiguous match found.
   at System.RuntimeType.GetMethodImpl(String name, BindingFlags bindingAttr, Binder binder, CallingConventions callConv, Type[] types, ParameterModifier[] modifiers)
   at System.Type.GetMethod(String name)
   at ArmA.Studio.Data.Virtual.ShowOperationFailedMessageBox(Exception ex)
   at ArmA.Studio.Data.ProjectFile.Delete()
   at ArmA.Studio.DataContext.SolutionPaneUtil.ProjectFileModelView.<get_CmdContextMenu_Delete>b__31_0(Object p)
   at ArmA.Studio.Data.UI.Commands.RelayCommand.Execute(Object parameter)
   at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
   at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
]]></stacktrace>
  <trace />
</root>```

Add "Add existing items.." and "Add existing folder..." context options for projects

Arma Studio currently lacks the ability to add several existing files at once, currently this can only be achieved by adding the files one by one, or editing the .assln file.

Therefore I propose adding two new options, or tweaking the current ones. Either the "Add existing item..." should allow for selecting multiple files, or a new option should be added "Add existing items..." to add multiple items at once.

There should also be an option to add existing folders, which should either add the folder and all its files, or recursively add the folders, and all its files, sub-folders and their files.

Distinguish between global and local variables

Notepad++ and KK's Arma syntax highlighter currently show a difference between Global and Local variables.
I believe it would be a good idea to implement or test that same idea in ArmA.Studio as it can make reading and interpreting an SQF file easier

Open Workspace with deleted files

Steps to reproduce

  1. Select and open workspace
  2. Close ArmA.Studio
  3. Delete some Files
  4. Start ArmA.Studio

Issues

  • While step 4: errors pop up for missing files
    e.g.

Expected

  • While step 2: no errors :)

Notes

You can just click OK for each missing file and ArmA.Studio will start without a problem

File shown as changed even when all changes have been reverted

Version: 0.1.6290.31151

Changing a file, not saving it and then undoing to the start still shows file as changed with the * symbol.
Additionally the pop-up to save the file on close also shows after performing the same steps.

Expected result is to remove the * from the file tab and not ask for save if file was unchanged in that form.

Debugger does not attach

Steps to reproduce

Steps from the Wiki Article "how to debug"

Issues

I just cannot attach the debugger. I did everything explained and was sure to download the 64bit .dll file. I followed the steps of the video. Deactivated Mods and Battleeye etc.

Expected

After I loaded my mission where my script is running in I expected the debugger to be able to attach. But always the error msg appears.

Wrong Directory - Crash on startup

Steps to reproduce

  1. Switch Workspace to directory like C:\

Issues

  • ArmA.Studio Crashes, Error reporter openes. If closed/reopened error reporter openes again (openes twice).

Additional Notes

  • From running it out of VS i got some read permission errors so i suspect it is Permission related
  • For a User, this can only be fixed by going into %appdata% and manually changing the workspace path in the App.ini
  • Maybe this can be fixed by resetting ConfigHost.App.WorkspacePath when ArmA.Studio crashes on startup with this specific error (or generally to prevent users from locking them self out)
  • I have crashed the way described in this issue and put a link to this ticket into the error reporter

[DISCORD ISSUE] Startup Window size Hang

  • next issue: i added my two main folders (quiet a few files, large git history) and when closing, starting its doing the initial lint and then just showing the loading screen for what seems forever

  • https://gist.github.com/vabene1111/31230bb168829cb402d4a3dce7d25c32

  • Window size is bugged.. And it tries to set "TOP" to "215333333333333" which is > than maxInt32
    Window position on startup is always wrong for me. always too high

  • ok 1. select workspace -> small window -> close/reopen works, 2. open, maximize -> close -> open: windows is on wrong monitor in fullscren, then moving to main monitor -> closing -> opening -> bug

Add the ability to copy the error list to clipboard

Add the functionallity to select errors in the error list and then press CTRL+C to copy the contents as comma separated file to clipboard

example output:

line, col, file, msg
1, 12, foobar.sqf, unexpected <EOF> expected ';'

Funktions-Libraries

Feature-Wünsche

  • Erkennung, Hervorhebung & Autovervollständigung von BIS_fnc Funktionen (siehe Anhang)
  • Möglichkeit der Erstellung von eigenen Funktions-Libraries, die ebenfalls erkannt, hervorgehoben und automatisch vervollständigt werden (Import von Dateien mit CfgFunctions, die ausgelesen wird?)
  • Erkennung von includes, die aus anderen Dateien eingeladen werden (#include "macro.h" -> erkennt Macros nicht und erkennt sie als Error)

Anhang

aa4a9a73346c9f2bf76bfc43e0dd6fbb

Implement Search

There is no word search as of now.
implement that for all text based files

Implement Version Dialog

Include a dialog under the help tab to show the current version (Git commit is ideal)
Or alternatively show the version in the title.

This should make it easier to determine if specific commits have broken anything when supporting end users.

Plugin System

Alter how systems work to create a plugin system allowing for more abstraction and more cleaner code.

((also will allow user-made extensions which are not connected to the ArmA.Studio in any way))

Implement Keybinds

Basic keybinds for basic operations should be implemented.

For example:

  • Ctrl + S - Save
  • Ctrl + Shift + S - Save All

Switching Workspace with open Tabs

Steps to reproduce

  1. Open some file in current workspace
  2. Switch Workspace to another Folder that does not have a file like the one that you opened in 1.
  3. Open Solution explorer

Issues

  • While step 2: An Error Message pops up telling you that the file that was opened in step 1 does not exist. If you try to open the Solution Explorer after that it wont open.
    Also: If the solution explorer was open before switching Workspaces it will be closed.

Expected

  • While step 3: Solution explorer should open

Additional Notes

  • The Problem can be fixed by simply restarting once, after that it seems to be required to press "Solution Explorer" twice before it works

Add basic text editing context menu to the text editors

currently, text editors lack all sort of context menu
this has to be changed to support at least the bare minimum of "settings"

context menu should support additional menu items provided by possible follow up documents

Add "help" feature to the tool which allows users to read more about features

as many user have trouble setting the tool up correctly and using it, a "help" should be added containing documents that allow quick insight about how to use a feature

should be able to support many topics, display a topic instantly (eg. when pressing help in the workspace dialog) and should allow for image display (maybe simple HTML view?)

Advanced Static Code Analysis

#10 is the basis of this preventing syntax errors.
We also want to detect some logic errors and inform the user about something that his code is doing that he is not expecting. Which happens quite often in SQF.

This should for example tell users about undefined local variables. Like

if (_this) then {
    _testVar = true; //Warning not using private and maybe overwriting variable in a higher scope
}

if (_testVar) then { //Warning _testVar might be undefined
    <do something>
}

In a perfect world #10 should see that _testVar may be Nil and that if (Nil) is invalid syntax but to know that we would have to know every place our function is called from. (This should also produce a warning about not using params or param to validate the type of the _this argument)

Also stuff like

switch _test do { //Possible undefined variable
___switch = Nil; //Warning! accessing `___switch` inside a switch statement may cause script errors.
case 1; //Will produce script error because `___switch` is Nil.
}:

Who knew that you could access ___switch and by setting it break any case statement? Users don't know. But Arma.Studio should.

Later on we should also offer quick fixes to the user. So they press one button and we fix their script. But that should probably be handled in a different issue later on.

Feel free to post other examples of stuff we should detect under this issue. So we have a somewhat todo list when we start to implement this.

  • Warning when a user uses a slow script when there is a faster alternative. For example doing what apply does manually with a forEach loop and two arrays.
  • Warning about never executed code if (false) -- See my first code statement. That if statement is useless code because a variable is defined but instantly deleted again as it leaves scope. If it's not overwriting any var in a higher scope
  • Passing a different position type than the command expects. For example PositionASL to nearEntities (nearEntities expects PositionAGL)

Improve styling of VariableView

Currently, the variable view is implemented rudimentary ...
enhance it by changing the styling and usability to the variable view of for example Visual Studio

Doubleclicking in autocomplete is not completing selected item

Steps to reproduce

  1. open any file
  2. start typing anything (eg. "configFile")
  3. in mid-word double click the matching word in the autocomplete list

Issues

  • After step 3: Autocomplete closes and nothing has changed

Expected

  • After step 3: Word should be completed & autocomplete should still be closed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.