{"id":14965106,"url":"https://github.com/kuiperzone/avantgarde","last_synced_at":"2025-04-08T03:16:03.976Z","repository":{"id":41248383,"uuid":"446747569","full_name":"kuiperzone/AvantGarde","owner":"kuiperzone","description":"Avalonia XAML Preview for Linux and Windows","archived":false,"fork":false,"pushed_at":"2024-03-15T22:51:18.000Z","size":3114,"stargazers_count":241,"open_issues_count":1,"forks_count":11,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-08T03:15:39.109Z","etag":null,"topics":["avalonia","axaml","c-sharp","dotnet","gui","ide","linux","preview","previewer","user-interface","wpf","xaml"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kuiperzone.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":"CONTRIBUTING","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-11T08:58:47.000Z","updated_at":"2025-03-29T14:59:03.000Z","dependencies_parsed_at":"2024-03-22T07:01:12.881Z","dependency_job_id":null,"html_url":"https://github.com/kuiperzone/AvantGarde","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuiperzone%2FAvantGarde","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuiperzone%2FAvantGarde/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuiperzone%2FAvantGarde/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuiperzone%2FAvantGarde/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kuiperzone","download_url":"https://codeload.github.com/kuiperzone/AvantGarde/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247767236,"owners_count":20992548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avalonia","axaml","c-sharp","dotnet","gui","ide","linux","preview","previewer","user-interface","wpf","xaml"],"created_at":"2024-09-24T13:34:13.834Z","updated_at":"2025-04-08T03:16:03.946Z","avatar_url":"https://github.com/kuiperzone.png","language":"C#","readme":"\u003cimg src=\"Media/Github-banner.png\" style=\"width:50%;max-width:1200px;margin-bottom:4em;\"/\u003e\n\n# Avant Garde #\n\n**Avant Garde** is a cross-platform XAML previewer for the C# [Avalonia Framework](https://github.com/AvaloniaUI/Avalonia).\nIt operates as a standalone application that works with your IDE, rather than an extension to an IDE. This means that\nAvant Garde is completely IDE agnostic.\n\n**[DOWNLOAD \u0026 INSTALL](https://github.com/kuiperzone/AvantGarde/releases/latest)**\n\nAvant Garde is licensed under GPLv3 or later.\n\n*If you like this project, don't forget to like and share. If you don't like it, just keep that to yourself. :)*\n\n**IMPORTANT NOTE:** Avant Garde supports Avalonia XAML (AXAML) with .NET. It cannot be used to\npreview WPF or MAUI applications. If you find it doesn't work with MAUI, there's no use raising a bug.\n\n## Linux \u0026 Windows ##\n[Downloads](https://github.com/kuiperzone/AvantGarde/releases/latest)\ninclude AppImages, deb and RPMs for **Linux**, and a **Setup Installer** for Windows.\n\n### MacOS? ###\nAvant Garde is not actively supported or tested on MacOS, although there are reports of it\n[working fine](https://github.com/kuiperzone/AvantGarde/discussions/16). However, you will need to clone and build\nfrom source. This is straight-forward as there are no special build requirements. You may also need to set the\n`$DOTNET_HOST_PATH` variable to point to the\n[dotnet command](https://github.com/dotnet/docs/blob/main/docs/core/tools/dotnet-environment-variables.md#dotnet_host_path).\n\n\u003cimg src=\"Media/Screenshot-main.png\" style=\"width:75%;max-width:1200px;margin-bottom:2em;\"/\u003e\n\n\n## Features ##\n\n* Avant Garde is a standalone application rather than an extension to an IDE.\n\n* It provides a read-only view of your Avalonia project, watching for file changes.\n\n* Set its main window to stay-on-top, and it will update the moment you save your files from your IDE.\n\n* While Avant Garde looks like a simple IDE and, indeed, can be used to browse your entire project,\nthe generation of XAML previews is the primary use case. It is not a XAML designer or an editor. It\ndoes not modify your project files or write to your project directories.\n\n* It supports preview scale, mouse interaction and a range of other features, including the ability\nto generate and export an Avalonia schema (XSD) file. See below for information.\n\n* Command line arguments provide for integration with IDEs where supported. For example, it is\npossible to launch Avant Garde so that a particular AXAML file is selected and shown on opening. It\nis also possible to launch it with its built-in **Project Explorer** hidden so as to minimize the\napplication window foot-print.\n\n* It supports a **dark theme**, so can match your desktop. See the application \"Preferences\".\n\n\n## Using Avant Garde ##\n\nSimply open a *.sln or *.csproj as you would in any IDE.\n\nBy the default, only \"*.axaml;*.xaml\" and image files are shown in the Project Explorer as these are\nthe primary files you will want to see in Avant Garde. The rest of your project source will not be\nshown, but can be enabled (see \"Solution Settings\" below).\n\nBelow, Visual Code on Linux with Avant Garde floating in stay-on-top mode to the right. Note, here,\nthat the Avant Garde project explorer has been hidden so that only the form preview is shown. This\nminimizes the window footprint. The preview will be updated as XAML changes are saved to file from\nyour IDE.\n\n\u003cimg src=\"Media/Screenshot-ide.png\" style=\"width:50%;max-width:1200px;margin-bottom:2em;\"/\u003e\n\n\n### Finding Your Assembly ###\nIn order to generate previews, Avant Garde must find your application assembly which must first be\nbuilt. This is usual practice with XAML previewers. If your assembly is in the usual place, i.e.\nunder `project/bin/Debug...`, Avant Garde will find it. If, however, if you are using variables or a\n`Directory.Build.props` file to set your output location, you will need to specify this location at\nthe project level (see below).\n\n\n### Solution Settings ###\nAvant Garde keeps state and settings for each solution or project you open. Solution and project\nsettings are specific to Avant Garde and, typically, the default values suffice and you will not\nneed to change them. Any changes you do make, however, are saved by Avant Garde so that such changes\npersist between application launches. Note that these settings are stored outside of your project as\nAvant Garde does not write to your project directories.\n\nWith a solution file open, click `Edit`-\u003e`Solution` (or the \"cog icon\" in the toolbar) to view\nsolution level settings. As shown below, these apply to your \"solution\", and all sub-projects\ncontained within it.\n\n\u003cimg src=\"Media/Screenshot-solution.png\" style=\"width:50%;max-width:500px;margin-bottom:2em;\"/\u003e\n\nFor example, setting \"Include File Pattern\" to \"*\" will cause **all project files** to be shown in\nthe Explorer. Remember, however, that views are read-only and Avant Garde is not intended to be used\nas a text editor or IDE.\n\n\n### Project Settings ###\nProject settings pertain to each project within a solution.\n\nClick `Edit`-\u003e`Project`, or the \"cog icon\" beside the project in the Explorer on the left side.\n\n\u003cimg src=\"Media/Screenshot-project.png\" style=\"width:50%;max-width:500px;margin-bottom:2em;\"/\u003e\n\nAs described, if your target assembly output cannot be located on disk, this is the place to specify\nit, as shown above.\n\nMoreover, if your project is a class library, it will be necessary to specify a relevant application\nproject before previews can be generated.\n\nNormally, Avant Garde will detect the Avalonia version from your project `.csproj` file. There are\ncertain instances when your project may not include the Avalonia package directly, but instead\nreference another class library which does. In this case, you must set the Avalonia version yourself\nwhich must be installed in your development environment.\n\n\n### Preview Options ###\nThere are a number of options associated with preview generation, as shown by the drop-down button\nbelow:\n\n\u003cimg src=\"Media/Screenshot-flags.png\" style=\"width:50%;max-width:300px;margin-bottom:1em;\"/\u003e\n\n#### Grid Lines \u0026 Colors ####\nThe \"Grid Lines \u0026 Colors\" options will cause instances of XAML `Grid` to be high-lighted with lines\nand background shade colours.\n\n#### Disable Events ####\nThe \"Disable Events\" option disables mouse interaction with the preview. This may be useful because\nit strips out all known Avalonia Control events from the XML prior to preview generation. When\ndisabled, events can be added and changed in the source code *without* having to re-build the\nassembly each time.\n\n#### Prefetch Assets ####\nWhen checked, the \"Prefetch Assets\" option will cause Avant Garde to locate asset files (i.e.\nimages) within your project source rather than the assembly. This, like \"Disable Events\", means that\nassets may be added or updated without having to rebuild on each change.\n\n### Stay-on-top Pin ###\nWhen working in an IDE, it is sometimes useful to keep Avant Garde on top while minimising the\nfootprint of the main window. On Linux, both Gnome and KDE provide an \"Always on Top\" option from\nthe titlebar.\n\n\u003cimg src=\"Media/Screenshot-stayontop.png\" style=\"width:50%;max-width:500px;margin-bottom:2em;\"/\u003e\n\nOn other systems, a \"pin\" button is available to do the same thing in Avant Garde itself. By\ndefault, on Linux, the pin button is hidden* but can be made visible from the Preferences window, as\nshown above.\n\n*\\* This was done because it is not always possible to align the pin button state with \"always on\ntop\" check state shown in the title bar, that and the fact it is not typically needed on Linux.*\n\n### Export Avalonia Schema ###\nAs a bonus feature, Avant Garde is able to generate and export an Avalonia schema (XSD) file. The\nschema file is generated by querying all Avalonia types, and is specific to the Avalonia version\nagainst which Avant Garde was built.\n\n\u003cimg src=\"Media/Screenshot-xsd-export.png\" style=\"width:50%;max-width:400px;margin-bottom:2em;\"/\u003e\n\nThe exported XSD file may be used with an IDE plugin extension to provide AXAML auto-completion and\nhelp reference hints. Below, Visual Code with the [Xml Complete](https://marketplace.visualstudio.com/items?itemName=rogalmic.vscode-xml-complete)\nextension, but referencing the XSD generated by Avant Garde.\n\n\u003cimg src=\"Media/Screenshot-xml-hint.png\" style=\"width:50%;max-width:500px;margin-bottom:2em;\"/\u003e\n\nNote, although the XmlComplete extension ships with its own Avalonia XSD file, it is possible to\nfurnish it with an alternative one using the extension's settings. This is exactly what we have done\nabove, using an Avant Garde generated XSD stored locally. You should find the XSD generated by Avant\nGarde to be much more comprehension than that shipped by Xml Complete because it is auto-generated\nby querying all available Avalonia types, and aims to provide comprehensive auto-completion and\nreference information, rather than a limited number of human generated explanations.\n\n\n## Command Line Options ##\nCommand line options can be utilized to launch Avant Garde from an IDE, as supported.\n\n**Usage:**\n\n    AvantGarde [filename] [-options]\n\nThis assumes `AvantGarde` is in the path.\n\nTypically, filename is expected to be .sln or .csproj file. However, it is also possible to launch\nAvantGarde with *any file* within the project hierarchy provided there exists a .csproj file in a\nparent directory above the file.\n\n**Options:**\n\n    -h, --help\n    Show help information.\n\n    -v, --version\n    Show version information.\n\n    -m, --min-explorer\n    Show with minimized explorer and non-maximized main window.\n\n    -s=name, --select=name\n    Select and preview given item on opening. Name can be a leaf name or fully qualified path.\n\n**Examples:**\n\nBelow, opens a solution and selects/previews `MainWindow.axaml` immediately on opening.\n\n    AvantGarde ~/MyProject/MyProject.sln --select=MainWindow.axaml\n\n\nBelow, as with the first example, except that the project explorer will also be minimized to the\nside of the window.\n\n    AvantGarde ~/MyProject/MyProject.sln --min-explorer -s=MainWindow.axaml\n\n\nBelow, we supply a .axaml file rather than a .sln or .csproj.\n\n    AvantGarde ~/MyProject/Views/MainWindow.axaml\n\nHere, AvantGarde will locate the first .csproj file it finds in the directory structure above the\nsupplied path level. The result will be similar to the first example above because the\n`MainWindow.axaml` preview will be shown on opening so that the \"--select\" option is not necessary\nhere.\n\n## Miscellanous ##\n\nAvant Garde will read the `$DOTNET_HOST_PATH` environment variable to determine the location of\n`dotnet`. If this is undefined, `dotnet` is assumed to be in the path.\n\n## Copyright \u0026 License ##\n\nCopyright (C) Andy Thomas, 2022-24.\nWebsite: https://kuiper.zone\n\nAvant Garde Previewer for Avalonia is free software: you can redistribute it and/or modify it under\nthe terms of the GNU General Public License as published by the Free Software Foundation, either\nversion 3 of the License, or (at your option) any later version.\n\nAvant Garde is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\neven the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nGeneral Public License for more details.\n\n### Non-code Assets ###\nImages and non-code assets are not subject to GPL.\n\nAvant Garde Project Logo: Copyright (C) Andy Thomas, 2022.\nButton and file icons: Copyright (C) Andy Thomas, 2022.\nJosefin Sans: Santiago Orozco, SIL Open Font License, Version 1.1.\n\nAll other copyright and trademarks are property of respective owners.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuiperzone%2Favantgarde","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkuiperzone%2Favantgarde","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuiperzone%2Favantgarde/lists"}