Giter VIP home page Giter VIP logo

avaloniavs's People

Contributors

abdelkarim avatar ahopper avatar aigiol avatar amwx avatar azure-pipelines[bot] avatar bintoss avatar deeja avatar donandren avatar foggyfinder avatar fornever avatar fusion86 avatar glen-nicol-garmin avatar grokys avatar heku avatar hez2010 avatar hhfranzo avatar huoyaoyuan avatar jl0pd avatar jp2masa avatar kekekeks avatar maxkatz6 avatar mikecodesdotnet avatar mrjul avatar odalet-addup avatar prashantvc avatar rstm-sf avatar seeker1437 avatar spaccabit avatar takoooooo avatar workgroupengineering 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

avaloniavs's Issues

Avalonia designer prevents copying the output file on build if it is a DLL

This issue slows down development with Avalonia greatly for me

The Avalonia designer occasionally somehow prevents the build process from copying the output file. Once I start getting the issue it goes away if I wait a bit, and it is likely to happen on the next build as well.
It is the following error:

error MSB3027: Could not copy "<project dir>\bin\Debug\netstandard2.0\<project>.UI.dll" to "..\bin\Debug_Windows\<project>.UI.dll". Exceeded retry count of 10. Failed.
error MSB3021: Unable to copy file "<project dir>\bin\Debug\netstandard2.0\<project>.UI.dll" to "..\bin\Debug_Windows\<project>.UI.dll". The requested operation cannot be performed on a file with a user-mapped section open.

The DLL above is the one which contains the code for all of the UI components and targets .NET Standard 2.0, and the main EXE targets .NET Framework 4.6.1 and just initializes the UI.

I have not experienced this issue with any other project (none of them use Avalonia).

Avalonia designer lock the output assembly

Avalonia designer at some point lock the output assembly and prevents successful buil, usually after 10-20 minutes usage and many code changes and builds.

Here is the log of the designer output:

Mode: vsIDEModeDebug
KillAllDesigners
Mode: vsIDEModeDesign
KillAllDesigners
Designer restart requested, waiting
Designer restart requested, waiting
Restarting designer
Restarting designer
KillAllDesigners
Killing Avalonia.Designer
Killing Avalonia.Designer
BuildEnd: vsBuildScopeProject/vsBuildActionBuild
Designer restart requested, waiting
Designer restart requested, waiting
Mode: vsIDEModeDebug
KillAllDesigners
Mode: vsIDEModeDesign
-- probably around here started locking assembly
KillAllDesigners
Designer restart requested, waiting
Designer restart requested, waiting
Restarting designer
Restarting designer
KillAllDesigners
Killing Avalonia.Designer
Killing Avalonia.Designer
BuildEnd: vsBuildScopeProject/vsBuildActionBuild
Designer restart requested, waiting
Designer restart requested, waiting
Restarting designer
Restarting designer
KillAllDesigners
Killing Avalonia.Designer
Killing Avalonia.Designer
BuildEnd: vsBuildScopeProject/vsBuildActionBuild
Designer restart requested, waiting
Designer restart requested, waiting
KillAllDesigners
Restarting designer
Restarting designer
BuildEnd: vsBuildScopeProject/vsBuildActionBuild
Designer restart requested, waiting
Designer restart requested, waiting
Restarting designer
Restarting designer
KillAllDesigners
Killing Avalonia.Designer
Killing Avalonia.Designer
BuildEnd: vsBuildScopeProject/vsBuildActionBuild
Designer restart requested, waiting
Restarting designer
KillAllDesigners
Killing Avalonia.Designer
BuildEnd: vsBuildScopeProject/vsBuildActionBuild
Designer restart requested, waiting
Restarting designer
KillAllDesigners
Killing Avalonia.Designer
BuildEnd: vsBuildScopeProject/vsBuildActionBuild
Designer restart requested, waiting
--stopped locking output
Mode: vsIDEModeDebug
KillAllDesigners
Mode: vsIDEModeDesign
KillAllDesigners
Designer restart requested, waiting
Restarting designer

Avalonia Designer is forced upon the user if it is not disabled

Steps to reproduce:

  • With the Designer still enabled, chose "Source View" as default view in options
  • Open two XAML files
  • Switch between the two files a couple of times

Expected result:
The source view should still be the default view until the user selects something else.

Actual result:
The designer view creeps up on, and forces itself upon the innocent and totally unsuspecting user.

Workaround:
Close the XAML file and reopen it again. Very annoying!

PerspexVS does not detect changes to output assembly name

When the designer is loaded, it will pull information about the output assembly so that the designer can do it' magic. If while a designer is open, a person decides to rename their output assembly, it is possible that the previously open designer view will fail or will not update with changes.

Handling Updates to DesignerApi

I have created a PR ( #29 ) that adds Perspex as a submodule and then links the DesignerApi.cs file to the designer so that it will pull the most up to date file from the repo and build.

I have opened this issue because even though this is nice, the designer only needs a single file from the Perspex repo. Additionally, this file is not updated often enough to warrant this to be really needed.

Should we bring the this PR into the repo (where DesignerApi.cs is pulled from the submodule) or should we stick to keep the file locally and keeping that up to date manually?

VS shortcuts in the designer

shortcuts in the designer need to be captured and raised on the pane rather than the hwnd that is hosting the designer ui.

To see it in effect give keyboard focus to the editor, shift+f7 to toggle between the designer and the editor -- you see it work fine.
now give focus to the designer, by clicking on it using the mouse, do the same, and you will clearly notice the issue.

It worked when you gave focus to the editor, because what is hosting the designer in the new ui is a FocusableContentPresenter that will attempt to give focus to its content element, if it fails it will keep it. But when you initially give focus to the designer, the pane is not aware of the shortcut being activated.

InvalidOperationException: "The control already has a visua…", and 0.8.0 does not show full exception details

Using VS2017 15.9.11. When opening the designer, the designer fails before the Window is fully rendered (see below) due to an InvalidOperationException. Interestingly, after building the project while the designer is open / in view, it starts displaying correctly without exception!

If the designer fails to load my XAML in this way, it displays a single dot, instead of a detailed message as it did in the past. Even in the log, the exception details are heavily truncated. If I set DesignWidth and DesignHeight, the window is sometimes partially rendered (in white, or with some elements), but there's still no exception details. Log:
(paths to my files trimmed)

10:48:48.541 [Verbose]  Finished PreviewerProcess.OnMessageAsync()
10:48:51.864 [Verbose]  Started EditorFactory.CreateEditorInstance("\Sage\Views\MainWindow.xaml")
10:48:51.864 [Verbose]  Started EditorFactory.GetTextBuffer("\Sage\Views\MainWindow.xaml")
10:48:51.879 [Verbose]  Finished EditorFactory.GetTextBuffer("\Sage\Views\MainWindow.xaml")
10:48:51.879 [Verbose]  Started EditorFactory.CreateEditorControl()
10:48:51.897 [Verbose]  Finished EditorFactory.CreateEditorControl()
10:48:51.898 [Verbose]  Finished EditorFactory.CreateEditorInstance("\Sage\Views\MainWindow.xaml")
10:48:51.899 [Verbose]  Started DesignerPane.Initialize()
10:48:51.902 [Verbose]  Started AvaloniaDesigner.Start()
10:48:51.904 [Verbose]  Started AvaloniaDesigner.LoadTargetsAndStartProcessAsync()
10:48:51.904 [Verbose]  Started AvaloniaDesigner.LoadTargetsAsync()
10:48:51.942 [Verbose]  Finished AvaloniaDesigner.LoadTargetsAsync()
10:48:51.942 [Verbose]  Started AvaloniaDesigner.StartProcessAsync()
10:48:51.942 [Verbose] 0 Started PreviewerProcess.StartAsync()
10:48:51.942 [Information] 0 Starting previewer process for '"\bin\Debug\netcoreapp2.1\Sage.dll"'
10:48:51.943 [Debug] 0 > dotnet.exe "exec --runtimeconfig \"\bin\Debug\netcoreapp2.1\Sage.runtimeconfig.json\" --depsfile \"\bin\Debug\netcoreapp2.1\Sage.deps.json\" \"\appdata\local\microsoft\visualstudio\15.0_3da171d8\extensions\ujtglfcn.mr1\Avalonia.Designer.HostApp.dll\" --transport tcp-bson://127.0.0.1:8906/ \"\bin\Debug\netcoreapp2.1\Sage.dll\""
10:48:51.944 [Information] 15744 Started previewer process for '"\bin\Debug\netcoreapp2.1\Sage.dll"'. Waiting for connection to be initialized.
10:48:51.944 [Verbose]  Finished AvaloniaDesigner.Start()
10:48:51.944 [Verbose]  Finished DesignerPane.Initialize()
10:48:51.942 [Verbose]  Started AvaloniaDesigner.CreateCompletionMetadataAsync()
10:48:52.041 [Debug] 15744 <= "Obtaining AppBuilder instance from Sage.Program.BuildAvaloniaApp"
10:48:52.026 [Verbose] 15744 Started PreviewerProcess.ConnectionInitializedAsync()
10:48:52.091 [Debug] 15744 <= "Initializing application in design mode"
10:48:52.091 [Information] 15744 Connection initialized
10:48:52.170 [Debug] 15744 => Sending ClientSupportedPixelFormatsMessage { Formats: [Bgra8888, Rgba8888] }
10:48:52.171 [Debug] 15744 => Sending ClientRenderInfoMessage { DpiX: 96, DpiY: 96 }
10:48:52.175 [Verbose] 15744 Finished PreviewerProcess.ConnectionInitializedAsync()
10:48:52.269 [Debug] 15744 => Sending UpdateXamlMessage { Xaml: "<Window xmlns=\"https://github.c…", AssemblyPath: "\bin\De…", XamlFileProjectPath: null }
10:48:52.269 [Verbose] 15744 Finished PreviewerProcess.StartAsync()
10:48:52.329 [Debug] 15744 => Sending UpdateXamlMessage { Xaml: "<Window xmlns=\"https://github.c…", AssemblyPath: "\bin\De…", XamlFileProjectPath: null }
10:48:52.331 [Verbose]  Finished AvaloniaDesigner.StartProcessAsync()
10:48:52.331 [Verbose]  Finished AvaloniaDesigner.LoadTargetsAndStartProcessAsync()
10:48:52.720 [Debug] 15744 <= "Sending StartDesignerSessionMessage"
10:48:52.733 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:52.745 [Debug] 15744 <= StartDesignerSessionMessage { SessionId: "2019d67f-a6a6-433e-abc1-f6bc2b9…" }
10:48:52.745 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()
10:48:53.011 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:53.020 [Debug] 15744 <= RequestViewportResizeMessage { Width: 540, Height: 34 }
10:48:53.028 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()
10:48:53.042 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:53.043 [Debug] 15744 <= RequestViewportResizeMessage { Width: 540, Height: 34 }
10:48:53.043 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()
10:48:53.044 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:53.044 [Debug] 15744 <= RequestViewportResizeMessage { Width: 540, Height: 34 }
10:48:53.044 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()
10:48:53.071 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:53.072 [Debug] 15744 <= FrameMessage { SequenceId: 1, Format: Bgra8888, Data: "00000000000000000000000000000000... (73440 bytes)", Width: 540, Height: 34, Stride: 2160 }
10:48:53.082 [Debug] 15744 => Sending FrameReceivedMessage { SequenceId: 1 }
10:48:53.101 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:53.103 [Debug] 15744 <= UpdateXamlResultMessage { Error: null, Handle: null, Exception: null }
10:48:53.103 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()
10:48:53.106 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()
10:48:53.143 [Verbose]  Finished AvaloniaDesigner.CreateCompletionMetadataAsync()
10:48:53.188 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:53.189 [Debug] 15744 <= UpdateXamlResultMessage { Error: "System.InvalidOperationExceptio…", Handle: null, Exception: ExceptionDetails { ExceptionType: "System.InvalidOperationException", Message: "The control already has a visua…", LineNumber: null, LinePosition: null } }
10:48:53.191 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()
10:48:53.192 [Verbose] 15744 Started PreviewerProcess.OnMessageAsync()
10:48:53.192 [Debug] 15744 <= FrameMessage { SequenceId: 1, Format: Bgra8888, Data: "00000000", Width: 1, Height: 1, Stride: 4 }
10:48:53.193 [Debug] 15744 => Sending FrameReceivedMessage { SequenceId: 1 }
10:48:53.222 [Verbose] 15744 Finished PreviewerProcess.OnMessageAsync()

Unfortunately I have not been able to reliably reproduce this with another project, so here is the XAML. Hope it helps, let me know if you need some of the code and styles:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:Sage.ViewModels;assembly=Sage"
        xmlns:i="clr-namespace:Avalonia.Xaml.Interactivity;assembly=Avalonia.Xaml.Interactivity"
        xmlns:ia="clr-namespace:Avalonia.Xaml.Interactions.Core;assembly=Avalonia.Xaml.Interactions"
        xmlns:helpers="clr-namespace:Sage.Helpers"
        Icon="resm:Sage.Assets.avalonia-logo.ico"
        HasSystemDecorations="False"
        ShowInTaskbar="True"
        Title="Sage"
        Height="34" Width="540">
    <Window.Resources>
        <helpers:MultiplyConverter x:Key="MultiplyConverter" />
        <helpers:ThicknessConverter x:Key="ThicknessConverter" />
        <helpers:AddMultiConverter x:Key="AddMultiConverter" />
        <helpers:DivideMultiConverter x:Key="DivideMultiConverter" />
        <helpers:MinMaxMultiConverter x:Key="MinMaxMultiConverter" />
        <helpers:ConcatMultiConverter x:Key="ConcatMultiConverter" />
    </Window.Resources>
    <Design.DataContext>
        <vm:MainWindowViewModel />
    </Design.DataContext>
    <i:Interaction.Behaviors>
        <helpers:WindowDragBehavior />
    </i:Interaction.Behaviors>
    <Border Background="{DynamicResource ThemeBackgroundBrush}" BorderBrush="{DynamicResource ThemeBorderHighBrush}"
            BorderThickness="{DynamicResource ThemeBorderThickness}" VerticalAlignment="Stretch">
        <StackPanel Orientation="Vertical">
            <Grid />
            <Grid ColumnDefinitions="*,Auto" HorizontalAlignment="Stretch">
                <Canvas x:Name="ScrollingHost" ClipToBounds="True" Margin="2">
                    <StackPanel Orientation="Horizontal">
                        <StackPanel.Styles>
                            <Style Selector="StackPanel">
                                <Style.Animations>
                                    <Animation IterationCount="Infinite" Duration="0:0:3">
                                        <KeyFrame Cue="0%">
                                            <Setter Property="Canvas.Right"
                                                    Value="{Binding #TextBlob.Bounds.Width, Converter={StaticResource MultiplyConverter}, ConverterParameter=-1}" />
                                        </KeyFrame>
                                        <KeyFrame Cue="100%">
                                            <Setter Property="Canvas.Right" Value="{Binding #TextBlobClone.Margin.Left}" />
                                        </KeyFrame>
                                    </Animation>
                                </Style.Animations>
                            </Style>
                        </StackPanel.Styles>
                        <TextBlock Classes="scrolling"
                                   x:Name="TextBlob"
                                   Text="{Binding Message}" />
                        <TextBlock Classes="scrolling"
                                   x:Name="TextBlobClone"
                                   Text="{Binding Message}">
                            <TextBlock.Margin>
                                <MultiBinding>
                                    <MultiBinding.Converter>
                                        <helpers:ConverterChain>
                                            <helpers:ConverterChain.MultiValueConverter>
                                                <helpers:MultiConverterWithParameter Converter="{StaticResource MinMaxMultiConverter}" Parameter="Max"/>
                                            </helpers:ConverterChain.MultiValueConverter>
                                            <helpers:ConverterWithParameter Converter="{StaticResource ThicknessConverter}" Parameter="Left"/>
                                        </helpers:ConverterChain>
                                    </MultiBinding.Converter>
                                    <MultiBinding Converter="{StaticResource AddMultiConverter}" ConverterParameter="/2">
                                        <Binding Path="#ScrollingHost.Bounds.Width"/>
                                        <Binding Path="#TextBlob.Bounds.Width" Converter="{StaticResource MultiplyConverter}" ConverterParameter="-1"/>
                                    </MultiBinding>
                                    <Binding Path="MinScrollingMargin"/>
                                </MultiBinding>
                            </TextBlock.Margin>
                        </TextBlock>
                    </StackPanel>
                </Canvas>
                <UniformGrid Grid.Column="1" Rows="1" Columns="10" HorizontalAlignment="Left">
                    <Button Classes="icon prevIcon" />
                    <Button Classes="icon playIcon">
                      <i:Interaction.Behaviors>
                        <ia:EventTriggerBehavior EventName="Click">
                          <ia:InvokeCommandAction Command="{Binding PlayCommand}" />
                        </ia:EventTriggerBehavior>
                      </i:Interaction.Behaviors>
                    </Button>
                    <Button Classes="icon nextIcon" />
                    <Button Classes="icon stopIcon">
                      <i:Interaction.Behaviors>
                        <ia:EventTriggerBehavior EventName="Click">
                          <ia:InvokeCommandAction Command="{Binding StopCommand}" />
                        </ia:EventTriggerBehavior>
                      </i:Interaction.Behaviors>
                    </Button>
                </UniformGrid>
            </Grid>
        </StackPanel>
    </Border>
</Window>

F# Projects in Solution Break the Designer

When a Solution with an Avalonia project contains an additional C#, VB, or C++project, the designer works fine, but as soon as an F# project is added

The designer goes into an infinite loop of failing to successfully load.

Errors on fresh install of version AvaloniaVS 0.6.0.1

I'm anxious to try out Avalonia as the new graphical front end for the Reko decompiler. I used Visual Studio 2017's "Extensions and Updates" dialog to download AvaloniaVS. Version 0.6.01 installed. I added a new "Avalonia Application" in the File > New > Project dialog. The following is the result:
image
In the VStudio Error List I see:

Severity	Code	Description	Project	File	Line	Suppression State
Error	CS0115	'App.Initialize()': no suitable method found to override	Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\App.xaml.cs	8	Active
Error	NU1108	Cycle detected. 
  Avalonia -> Avalonia (>= 0.6.1).	Avalonia	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\Avalonia.csproj	1	
Error	NU1108	Cycle detected. 
  Avalonia -> Avalonia (>= 0.6.1).	Avalonia	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\Avalonia.csproj	1	
Error	CS0103	The name 'AppBuilder' does not exist in the current context	Avalonia(net461), Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\Program.cs	15	Active
Error	CS0246	The type or namespace name 'AppBuilder' could not be found (are you missing a using directive or an assembly reference?)	Avalonia(net461), Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\Program.cs	14	Active
Error	CS0246	The type or namespace name 'Application' could not be found (are you missing a using directive or an assembly reference?)	Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\App.xaml.cs	6	Active
Error	CS0234	The type or namespace name 'Controls' does not exist in the namespace 'Avalonia' (are you missing an assembly reference?)	Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\MainWindow.xaml.cs	2	Active
Error	CS0234	The type or namespace name 'Logging' does not exist in the namespace 'Avalonia' (are you missing an assembly reference?)	Avalonia(net461), Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\Program.cs	3	Active
Error	CS0234	The type or namespace name 'Markup' does not exist in the namespace 'Avalonia' (are you missing an assembly reference?)	Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\App.xaml.cs	2	Active
Error	CS0234	The type or namespace name 'Markup' does not exist in the namespace 'Avalonia' (are you missing an assembly reference?)	Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\MainWindow.xaml.cs	3	Active
Error	CS0246	The type or namespace name 'Window' could not be found (are you missing a using directive or an assembly reference?)	Avalonia(netcoreapp2.0)	C:\dev\uxmal\reko\master\src\Drivers\Avalonia\MainWindow.xaml.cs	7	Active

My expectation was that this would work right off the bat. What am I doing wrong?

A more designer friendly "Markup Error" message for Previewer

Currently Avalonia Previewer tries to immediately show an error message while user is typing code (it fails in that tho).
I think it's better to let user write the code, then decide to show any errors.

WPF Designer approach:
vs-designer

Avalonia Previewer approach:
avalonia-previewer

Or if you think it should report the error immediately, I think XAML Studio's approach can be used too, it shows up an error message popup on top of the last error-less design:

XAML Studio approach:
xaml-studio

File Templates not available for Core Projects

I assume the File Templates (User Control, Window) should be available for core projects, too. Currently, it's not possible to select them in the new dialog. I think it should be fixed by removing this line, but I cannot build the project, so I can't create a PR myself.

Document outline ideas

This is an initial implementation of the document outline, it will show up when Perspex xaml files are opened.

I plan to add the following:

  • Highlighting occurrences of the filter string within the ui containers, similar to the solution explorer filter.
  • ability to collapse/expand nodes.
  • displaying the name attribute

doc-outline

VS for Mac port

Is there a possibility for this to be ported to Visual Studio for Mac? (formerly Xamarin Studio. It also uses the XS extension framework, not the VS one)

PerspexVS does not detect changes to current working document

In the event that a person renamed the document that the designer is targeting, it is possible the designer might fail because it is referencing a non-existent file, or cause the old file to be recreated on save, We will need to be able to handle this.

Visual studio crashes if solution contains a c++ dll project

In a solution that contains an avalonia project and a c++ dll project,
when you select an avalonia xaml file visual studio crashes with "The type initializer for 'AvaloniaVS.Infrastructure.ProjectInfoService' threw an exception".
Disabling the extension or removing the dll project prevents the crash. It can be reproduced with just empty avalonia and c++ dll projects.

Font rendering in editor differs from Visual Studio

Compare left (Visual Studio C# editor) with right (AvaloniaVS editor window in the same Visual Studio instance):
image

Font to the right looks significantly closer to bold. I think something's wrong with text rendering mode in Avalonia (namely, it looks like it has TextOptions.TextFormattingMode = Ideal while Visual Studio windows have TextOptions.TextFormattingMode = Display on my machine).

Investigating further; hope I'll be able to prepare a patch.

Resource not found after update to 0.8.0

With Extension v0.7.0 all worked fine, after updating to v0.8.0, the previewer has the "reosurce not found" error message System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\UserName\Path\to\Project\ProjectName\Resources\Images\outline_home_white_36dp.png'. for my image resources. All the image deklarations looked like this where the "Resources" directory is toplevel in the project. BUT, Run works:

<imaging:Bitmap x:Key="HomeIcon">
   <x:Arguments>
      <x:String>Resources/Images/outline_home_white_36dp.png</x:String>
   </x:Arguments>
</imaging:Bitmap>

Changing the lines above to the following makes the previewer work, but the project can't find the resource on runtime now:

<imaging:Bitmap x:Key="HomeIcon">
   <x:Arguments>
      <x:String>ProjectName/Resources/Images/outline_home_white_36dp.png</x:String>
   </x:Arguments>
</imaging:Bitmap>

I think the relies to where the instance of the application runs for the previewer and the double project directory. Path\ProjectName\ProjectName\bin\...

NuGet.config at csproj level doesn't work

I'm seeing that NuGet.config created by this extension doesn't work if placed next to .csproj file, but it works when placed next to .sln.
Anybody seeing the same?
VS 2017 15.8.2

Visual Studio XAML Window Layout Options

This is not a bug but more of a feature request.

Could you please add the ability to be able to move the rendered window and the XAMAL code editor panes to be vertical side by side and horizontal above and below?

image

Update to Avalonia 0.7

Are there any plan to update the plugin to Avalonia 0.7?

Especially since now .net framework 4.6.1 is officially supported as a target.

Master not building

I'm trying to build AvaloniaVS but it can't find the Avalonia.Ide repository and indeed it doesn't seem to exist.

Intellisence not working with designer disabled

Steps to Reproduce:

  • Disable the Avalonia designer in options
  • Restart VS (not sure if this is needed for reproduction, but it might be)
  • Open XAML file

Expected Result:
Intellisence should work even with the designer disabled.

Actual Result:
No intellisence.

COMException: Unspecified error in VS2019 with 0.8.0

The designer no longer loads for me in VS2019 16.1.0 Preview 1.0 after updating to 0.8.0:
(paths to my files trimmed)

09:29:36.311 [Information]  Avalonia Package initialized
10:29:05.474 [Verbose]  Started EditorFactory.CreateEditorInstance("\Sage\Views\MainWindow.xaml")
10:29:05.476 [Verbose]  Started EditorFactory.GetTextBuffer("\Sage\Views\MainWindow.xaml")
10:29:05.481 [Verbose]  Finished EditorFactory.GetTextBuffer("\Sage\Views\MainWindow.xaml")
10:29:05.482 [Verbose]  Started EditorFactory.CreateEditorControl()
10:29:05.520 [Verbose]  Finished EditorFactory.CreateEditorControl()
10:29:05.522 [Verbose]  Finished EditorFactory.CreateEditorInstance("\Sage\Views\MainWindow.xaml")
10:29:05.524 [Verbose]  Started DesignerPane.Initialize()
10:29:05.556 [Verbose]  Started AvaloniaDesigner.Start()
10:29:05.561 [Verbose]  Started AvaloniaDesigner.LoadTargetsAndStartProcessAsync()
10:29:05.566 [Verbose]  Started AvaloniaDesigner.LoadTargetsAsync()
10:29:05.611 [Verbose]  Finished AvaloniaDesigner.Start()
10:29:05.611 [Verbose]  Finished DesignerPane.Initialize()
10:29:05.611 [Error]  Exception caught by FireAndForget
System.AggregateException: One or more errors occurred. ---> System.Runtime.InteropServices.COMException: Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL))
   at EnvDTE.Configuration.get_Properties()
   at AvaloniaVS.Services.SolutionService.<GetOutputInfoAsync>d__9.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Services\SolutionService.cs:line 220
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AvaloniaVS.Services.SolutionService.<GetProjectsAsync>d__3.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Services\SolutionService.cs:line 110
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AvaloniaVS.Views.AvaloniaDesigner.<LoadTargetsAsync>d__31.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Views\AvaloniaDesigner.xaml.cs:line 236
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AvaloniaVS.Views.AvaloniaDesigner.<LoadTargetsAndStartProcessAsync>d__30.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Views\AvaloniaDesigner.xaml.cs:line 217
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.Runtime.InteropServices.COMException (0x80004005): Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL))
   at EnvDTE.Configuration.get_Properties()
   at AvaloniaVS.Services.SolutionService.<GetOutputInfoAsync>d__9.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Services\SolutionService.cs:line 220
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AvaloniaVS.Services.SolutionService.<GetProjectsAsync>d__3.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Services\SolutionService.cs:line 110
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AvaloniaVS.Views.AvaloniaDesigner.<LoadTargetsAsync>d__31.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Views\AvaloniaDesigner.xaml.cs:line 236
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AvaloniaVS.Views.AvaloniaDesigner.<LoadTargetsAndStartProcessAsync>d__30.MoveNext() in D:\projects\AvaloniaUI\AvaloniaVS\AvaloniaVS\Views\AvaloniaDesigner.xaml.cs:line 217<---

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.