Giter Club home page Giter Club logo

wixedit's Introduction

Project Description

WiXEdit is an editor for XML source files for the Windows Installer XML (WiX) toolset to build MSI and MSM setup packages. It provides a visual representation of the dialogs and an easy way to edit the WiX source files.

This project was originally created by Jasper Keuper ([email protected]) at http://wixedit.sourceforge.net/.

Build Status

Build

License

The license is MIT license (http://opensource.org/licenses/MIT).

Contributors

  • Jasper Keuper
  • Sebastian Baumhekel
  • Chris Richner
  • Rami Abughazaleh

wixedit's People

Contributors

chrisrichner avatar dependabot[bot] avatar icnocop avatar rtksrubie avatar sebasbaumh 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

wixedit's Issues

Different currency dropdown

My issue is that I have Amazon associate account and which is from India and have all the products which is associate link in India the problem is if anybody wants to buy but are from Us or UK and but when they click on my link it's shows the Indian currency only so how do I change it so that ppl using Amazon in different countries and buy products ..

Kudos to author(s)

I was trying to create a Windows installer with WiX Toolset as part of a CI/CD process, and it was tough.

I needed a "template" that I can work with, and this tool is exactly what I needed. I created a new project, chose relevant features, executed a build, and from now on I'm editing the generated .wxs file. I even copy-pasted the candle and light commands from the output log, which also made the whole process easier.

Thank you very much for this project, it's super-uber helpful! πŸ₯‡

Wrong namespace

Is there a way to correct his:

grafik

I changed the settings linke this, but without success:

grafik

PathEdit control not load size and not saved it

When I open a PathEdit control, not tested with a TextBox, the height of the control alway display at 15 and in the XML is bigger of that. If I change this values always comming back to 15.

noob tries wixedit

So far i did:

  • .NET SDK 6 download and install
  • dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
  • dotnet tool install --global wix
  • starting wixedit
  • adding C:\Users\my.user\.dotnet\tools\ over tools > options > wix bin dir
  • getting error that wix.xsd is missing

image

im very sorry, im completly new to wixedit

Add version custom light argument

I'd like to include the version in the msi filename created by the light.exe command. Ideally the version could be a custom light argument, similar to <projectfile> or <projectname>, and be obtained from the <Product Version="0.0.1" /> attribute from the wxs file.

In this function:

WixEdit/src/Xml/WixFiles.cs

Lines 833 to 841 in 8f2cec1

public string GetCustomLightArguments()
{
string lightArgs = projectSettings.LightArgs;
lightArgs = lightArgs.Replace("<projectfile>", wxsFile.FullName);
lightArgs = lightArgs.Replace("<projectname>", Path.GetFileNameWithoutExtension(wxsFile.Name));
lightArgs = lightArgs.Replace("<extensions>", GetExtensionArguments());
return lightArgs;
}

add a line something like this:

            lightArgs = lightArgs.Replace("<version>", GetVersionArgument());

And then add something like this:

public static string GetVersionArgument()
{
	xsdNsmgr.AddNamespace("wi", "http://schemas.microsoft.com/wix/2006/wi"); // XPath namespaces are tricky!

	// use xsdDocument & xsdNsmgr static variables which have already been loaded
	string xPathVersion = "/wi:Wix/wi:Product/@Version";
	var versionAttr = xsdDocument.SelectSingleNode(xPathVersion, xsdNsmgr);
	if (versionAttr == null) {
		return "Product tag has no Version attribute";
	}
	return versionAttr.InnerText;
}

Sample .NET code: https://dotnetfiddle.net/ctnymp

Confirm action when deleting a folder

In the Files > Files view, if I right-click on a folder and (accidentally) select "Delete" (instead of "Import Files"), I expected a confirmation dialog to confirm the action because it is a destructive action.

Custom Commandline

Hi,
Is it possible to include the project version in the custom commandline for Light.exe,

for example : "<projectname>.wixobj" -out "<projectname>_<ProductVersion>.msi" <extensions>

Many Thanks

GetExtensionArguments() doesn't always recognize needing util extension

The <extension> command-line replacement for light.exe doesn't recognize needing the util extension for all cases.

Building a .wxs which uses Quiet Execution Custom Actions doesn't have -ext WixUtilExtension added to the light.exe command-line arguments by WixEdit.
Partial sample wxs:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
...
    <Property Id="WixQuietExecCmdLine" Value="command line to run"/>
    <CustomAction Id="QtExecExample" BinaryKey="WixCA" DllEntry="WixQuietExec" Execute="immediate" Return="check"/>
...
</Wix>

Adding this check to GetExtensionArguments() func should fix this, at least partially.

    if (!selectedLowerCaseExtensions.Contains("util"))
    {
        XmlNodeList binaryKeyWixCAList = xsdDocument.SelectNodes("//@BinaryKey[.='WixCA']", wxsNsmgr);		
        if (utilRefList.Count > 0)
        {
            ret.Append(" -ext WixUtilExtension ");
        }
    }

Selecting based on the BinaryKey attribute's value of WixCA may only be a partial solution, and likely won't add -ext WixUtilExtension for all situations that need it. Not sure if there's a better way to detect xmlns:util attribute in the <Wix> tag. It doesn't seem to be an attribute for the purpose of the SelectNodes() func.

Offer to reload file when (external) changes detected on disk

If the file being currently edited in WixEdit is changed on the disk by another tool, WixEdit should offer to reload the file. If there are pending modifications, the user should be able to save them, potentially under another filename. Ideally, after reloading, the editor would open at the same place where it was just before reloading.

Dialog preview: Apply translations

A have a wix fragment file containing a localized dialog. I'd like to see in WixEdit's preview what the dialog would look like, however, since it is localized, all the strings are in the form !(loc.SomeStringID). Combined with the fact that the IDs are rather long and they overflow the controls they are assigned to. This makes the preview pretty useless. It would be awesome if I could specify a localization file that would be applied to the preview so that the strings are proper.
If this is already possible, please forgive my ignorance, but I couldn't find anything.

image

Immediate crash when opening Tools dropdown

When I click the Tools dropdown in the top left (or click a different button i.e. Build and hover over tools so as to attempt to open the Tools dropdown), WixEdit immediately crashes. I am using v0.7.6.14 on Windows 10. This occurs even with no files open, and regardless of whether it is run as administrator.

Specs, if they help:
i7-11850H @ 2.5 GHz (16 CPUs)
DirectX 12
16 GB RAM
Internal graphics w/ 128 MB VRAM
1920x1080 60 Hz monitor

Shortcuts do not work

The program is very interesting, but I can’t create the installer using the wizard. Windows 10 64-bit. Installation is no problem. All shortcuts do not work on the executable file do not work. Errors such as if the program starts with restrictions, and it needs administrator rights.

`

                    <Directory Id="HELP" Name="help">
                        <Component Id="AVTO_POISK.JPG" DiskId="1" Guid="B21A6A7E-C46F-4E73-9E9D-13C0652F97E1">
                            <File Id="AVTO_POISK.JPG" Name="Avto-poisk.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\Avto-poisk.jpg" />
                        </Component>
                        <Component Id="AVTOPOISK.HTML" DiskId="1" Guid="B9685D46-2B22-445D-9BF3-D4BEDD60E644">
                            <File Id="AVTOPOISK.HTML" Name="avtopoisk.html" Source="D:\Public\lpro\Lpro 1.5.0\help\avtopoisk.html" />
                        </Component>
                        <Component Id="CSV.JPG" DiskId="1" Guid="01F249E9-D1C6-42B2-BB01-FFCE4849F041">
                            <File Id="CSV.JPG" Name="CSV.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\CSV.jpg" />
                        </Component>
                        <Component Id="CSV2.JPG" DiskId="1" Guid="7A5A023C-0A09-4F2C-8EA8-2E8C0CF221A6">
                            <File Id="CSV2.JPG" Name="CSV2.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\CSV2.jpg" />
                        </Component>
                        <Component Id="EXCEL.JPG" DiskId="1" Guid="203861C0-F955-4D97-B659-17425EB6BEB5">
                            <File Id="EXCEL.JPG" Name="Excel.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\Excel.jpg" />
                        </Component>
                        <Component Id="HTML.JPG" DiskId="1" Guid="EBFD1727-EB00-461B-BDA4-C8F267CD50C8">
                            <File Id="HTML.JPG" Name="HTML.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\HTML.jpg" />
                        </Component>
                        <Component Id="HTML2.JPG" DiskId="1" Guid="FEE71225-3584-4613-8DE4-CFB95D9C0EE8">
                            <File Id="HTML2.JPG" Name="HTML2.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\HTML2.jpg" />
                        </Component>
                        <Component Id="INDEX.HTML" DiskId="1" Guid="D8414974-7906-4F3B-B0DC-BD1A17656702">
                            <File Id="INDEX.HTML" Name="index.html" Source="D:\Public\lpro\Lpro 1.5.0\help\index.html" />
                        </Component>
                        <Component Id="INSTALL_PO.HTML" DiskId="1" Guid="9859EF26-7E93-4028-83E2-314FF0B3651F">
                            <File Id="INSTALL_PO.HTML" Name="Install-PO.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Install-PO.html" />
                        </Component>
                        <Component Id="INSTALLPO.JPG" DiskId="1" Guid="E3E499DA-09B3-4BA0-90F1-C8F7610CAEA1">
                            <File Id="INSTALLPO.JPG" Name="InstallPO.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\InstallPO.jpg" />
                        </Component>
                        <Component Id="INSTALLPO2.JPG" DiskId="1" Guid="BA3EF8BF-F673-407A-9661-FA2CB45FD731">
                            <File Id="INSTALLPO2.JPG" Name="InstallPO2.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\InstallPO2.jpg" />
                        </Component>
                        <Component Id="KNOPKA_NACHAT_POISK.JPG" DiskId="1" Guid="693829C4-3292-4570-9071-B2DD6404DFF0">
                            <File Id="KNOPKA_NACHAT_POISK.JPG" Name="knopka-nachat-poisk.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\knopka-nachat-poisk.jpg" />
                        </Component>
                        <Component Id="LIBREOFFICE.JPG" DiskId="1" Guid="AAA1C74B-AE61-402F-BD16-2B14B9F00401">
                            <File Id="LIBREOFFICE.JPG" Name="LibreOffice.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\LibreOffice.jpg" />
                        </Component>
                        <Component Id="MEDIA_POISK.HTML" DiskId="1" Guid="D323990F-17E6-47FA-9E0E-963F2C5D5F9F">
                            <File Id="MEDIA_POISK.HTML" Name="media-poisk.html" Source="D:\Public\lpro\Lpro 1.5.0\help\media-poisk.html" />
                        </Component>
                        <Component Id="MEDIA.JPG" DiskId="1" Guid="998BD4D2-583D-4AC9-ABFD-8A4497AE692E">
                            <File Id="MEDIA.JPG" Name="media.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\media.jpg" />
                        </Component>
                        <Component Id="NAZNACHENIE.HTML" DiskId="1" Guid="74E10587-7E32-427D-9803-C87E66A4C6A9">
                            <File Id="NAZNACHENIE.HTML" Name="Naznachenie.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Naznachenie.html" />
                        </Component>
                        <Component Id="PARK_COMP.HTML" DiskId="1" Guid="4AC48988-2AAB-4C46-AA75-D9AA82FAB78E">
                            <File Id="PARK_COMP.HTML" Name="park-comp.html" Source="D:\Public\lpro\Lpro 1.5.0\help\park-comp.html" />
                        </Component>
                        <Component Id="POISK_V_BAZE.HTML" DiskId="1" Guid="3243C194-AC7D-4B10-893D-29F493C75A9C">
                            <File Id="POISK_V_BAZE.HTML" Name="Poisk-v-baze.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Poisk-v-baze.html" />
                        </Component>
                        <Component Id="POISK_V_BAZE.JPG" DiskId="1" Guid="5794646F-AD81-495C-9CC0-40BA56CC3A62">
                            <File Id="POISK_V_BAZE.JPG" Name="poisk-v-baze.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\poisk-v-baze.jpg" />
                        </Component>
                        <Component Id="POISK_V_BAZE2.JPG" DiskId="1" Guid="38B6FA12-71F2-4277-B245-7CCB2380D59F">
                            <File Id="POISK_V_BAZE2.JPG" Name="poisk-v-baze2.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\poisk-v-baze2.jpg" />
                        </Component>
                        <Component Id="RUCH_POISK.HTML" DiskId="1" Guid="8D0AA01A-1127-44BA-8B0F-230862AA54EB">
                            <File Id="RUCH_POISK.HTML" Name="Ruch-poisk.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Ruch-poisk.html" />
                        </Component>
                        <Component Id="RUCHPOISK.JPG" DiskId="1" Guid="014689CC-7A79-430F-9D49-1FC5554511B6">
                            <File Id="RUCHPOISK.JPG" Name="ruchpoisk.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\ruchpoisk.jpg" />
                        </Component>
                        <Component Id="RUCHPOISK2.JPG" DiskId="1" Guid="1E869A6D-BF99-4D3F-8DFD-408FAA693EBC">
                            <File Id="RUCHPOISK2.JPG" Name="ruchpoisk2.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\ruchpoisk2.jpg" />
                        </Component>
                        <Component Id="SETTINGS.HTML" DiskId="1" Guid="D3EBEB07-655E-4FC7-BCAF-04C0F2BDC7FB">
                            <File Id="SETTINGS.HTML" Name="Settings.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Settings.html" />
                        </Component>
                        <Component Id="SORTBYLIC.JPG" DiskId="1" Guid="9579FCF6-E96C-48FC-A04C-9FF73458FA0F">
                            <File Id="SORTBYLIC.JPG" Name="SortByLic.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\SortByLic.jpg" />
                        </Component>
                        <Component Id="SORTBYNAME.JPG" DiskId="1" Guid="1C06B8DE-0348-493C-8040-80FB09782681">
                            <File Id="SORTBYNAME.JPG" Name="SortByName.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\SortByName.jpg" />
                        </Component>
                        <Component Id="SORTBYSTOIMOST.JPG" DiskId="1" Guid="9DB9D41E-EB1F-4EC4-884B-EA90359F0A04">
                            <File Id="SORTBYSTOIMOST.JPG" Name="SortByStoimost.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\SortByStoimost.jpg" />
                        </Component>
                        <Component Id="SORTBYTYPE.JPG" DiskId="1" Guid="9EF131B1-4920-472A-8A3C-3C156BC68558">
                            <File Id="SORTBYTYPE.JPG" Name="SortByType.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\SortByType.jpg" />
                        </Component>
                        <Component Id="SORTBYZAMEN.JPG" DiskId="1" Guid="681317C0-C325-4D6E-8A97-C0E925F8C01C">
                            <File Id="SORTBYZAMEN.JPG" Name="SortByZamen.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\SortByZamen.jpg" />
                        </Component>
                        <Component Id="TYPE_LIC_PO.HTML" DiskId="1" Guid="EFF8F80C-7271-4D4D-9C4E-50D34BB0CA7C">
                            <File Id="TYPE_LIC_PO.HTML" Name="Type-lic-PO.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Type-lic-PO.html" />
                        </Component>
                        <Component Id="VOZMOZH_OSHIBKI.HTML" DiskId="1" Guid="5BE0C3C4-BD49-447D-82FF-156797765D20">
                            <File Id="VOZMOZH_OSHIBKI.HTML" Name="Vozmozh-Oshibki.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Vozmozh-Oshibki.html" />
                        </Component>
                        <Component Id="VOZMOZHNOSTI.HTML" DiskId="1" Guid="D78B45E9-1513-4720-A70C-64A9FB991C99">
                            <File Id="VOZMOZHNOSTI.HTML" Name="Vozmozhnosti.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Vozmozhnosti.html" />
                        </Component>
                        <Component Id="ZAMENA.HTML" DiskId="1" Guid="9B6F0915-4E6D-4520-8327-681A30ECBB03">
                            <File Id="ZAMENA.HTML" Name="Zamena.html" Source="D:\Public\lpro\Lpro 1.5.0\help\Zamena.html" />
                        </Component>
                        <Component Id="ZAMENA.JPG" DiskId="1" Guid="DF5EA7C5-7EF3-4229-BD80-0C8A2781FD13">
                            <File Id="ZAMENA.JPG" Name="Zamena.jpg" Source="D:\Public\lpro\Lpro 1.5.0\help\Zamena.jpg" />
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
        </Directory>
        <Directory Id="DesktopFolder" />
        <Directory Id="ProgramMenuFolder">
            <Directory Id="ProgramMenuDir" Name="Lpro">
                <Component Id="StartMenuShortcuts" Guid="10D2A364-16F8-4ED9-A1FE-62CC5AF8204B">
                    <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
                    <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" />
                    <Shortcut Id="UninstallProduct" Name="Uninstall" Description="Uninstall Lpro" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" />
                </Component>
            </Directory>
        </Directory>
    </Directory>
    <Feature Id="DefaultFeature" Title="Main Feature" Level="1">
        <ComponentRef Id="BASE.TXT" />
        <ComponentRef Id="GPL.TXT" />
        <ComponentRef Id="LIBEAY32.DLL" />
        <ComponentRef Id="LPRO.DB" />
        <ComponentRef Id="LPRO.EXE" />
        <ComponentRef Id="LPRO.ICO" />
        <ComponentRef Id="PROG.TXT" />
        <ComponentRef Id="SQLITE3.DEF" />
        <ComponentRef Id="SQLITE3.DLL" />
        <ComponentRef Id="SSLEAY32.DLL" />
        <ComponentRef Id="UPDATE.EXE" />
        <ComponentRef Id="USER_DB.DB" />
        <ComponentRef Id="AVTO_POISK.JPG" />
        <ComponentRef Id="AVTOPOISK.HTML" />
        <ComponentRef Id="CSV.JPG" />
        <ComponentRef Id="CSV2.JPG" />
        <ComponentRef Id="EXCEL.JPG" />
        <ComponentRef Id="HTML.JPG" />
        <ComponentRef Id="HTML2.JPG" />
        <ComponentRef Id="INDEX.HTML" />
        <ComponentRef Id="INSTALL_PO.HTML" />
        <ComponentRef Id="INSTALLPO.JPG" />
        <ComponentRef Id="INSTALLPO2.JPG" />
        <ComponentRef Id="KNOPKA_NACHAT_POISK.JPG" />
        <ComponentRef Id="LIBREOFFICE.JPG" />
        <ComponentRef Id="MEDIA_POISK.HTML" />
        <ComponentRef Id="MEDIA.JPG" />
        <ComponentRef Id="NAZNACHENIE.HTML" />
        <ComponentRef Id="PARK_COMP.HTML" />
        <ComponentRef Id="POISK_V_BAZE.HTML" />
        <ComponentRef Id="POISK_V_BAZE.JPG" />
        <ComponentRef Id="POISK_V_BAZE2.JPG" />
        <ComponentRef Id="RUCH_POISK.HTML" />
        <ComponentRef Id="RUCHPOISK.JPG" />
        <ComponentRef Id="RUCHPOISK2.JPG" />
        <ComponentRef Id="SETTINGS.HTML" />
        <ComponentRef Id="SORTBYLIC.JPG" />
        <ComponentRef Id="SORTBYNAME.JPG" />
        <ComponentRef Id="SORTBYSTOIMOST.JPG" />
        <ComponentRef Id="SORTBYTYPE.JPG" />
        <ComponentRef Id="SORTBYZAMEN.JPG" />
        <ComponentRef Id="TYPE_LIC_PO.HTML" />
        <ComponentRef Id="VOZMOZH_OSHIBKI.HTML" />
        <ComponentRef Id="VOZMOZHNOSTI.HTML" />
        <ComponentRef Id="ZAMENA.HTML" />
        <ComponentRef Id="ZAMENA.JPG" />
        <ComponentRef Id="StartMenuShortcuts" />
    </Feature>
    <UI />
    <Icon Id="DesktopIcon.exe" SourceFile="D:\Public\lpro\Lpro 1.5.0\Lpro.exe" />
    <Icon Id="StartMenuIcon.exe" SourceFile="D:\Public\lpro\Lpro 1.5.0\Lpro.exe" />
</Product>
`

Any interest in converting this into WPF?

I could help with that. I don't think it would take that much time. I have some hard time using the app on high resolution screens for example, especially when opening system dialogs, because they make the main app ultra small, it's clearly some dpi issue.

I mean I would start converting it right away but I don't want to fight with you. You know how it is, some creators are touchy when it comes to their babies, including me, so it's better to ask if such help is welcome.

Ondrej

Can't change size of dialog

Trying to change the dialog from the initial size gives an error "Value is not in the valid range of numbers." What? You can't change the size of the dialog at all?

[Feature Request] UI Element

As the title said, the only way I add this and it's children by manually edit my .wxs script file. Implementing this should make my work way easier than manually type everything.

EDIT: For example, I add <Publish> Element or <UIRef> Element directly into <UI> as Parent Element manually, but the changes I made doesn't show up in WixEdit.

Dialog preview: Apply the show/hide Conditions to controls

I have a dialog that changes quite a lot depending of the value of properties. There are over 70 controls, each has a Condition element specifying when it should be visible. As such, the dialog preview is pretty useless, showing all the controls at the same time. As an example of such usage, consider a dialog for choosing a database - in it the users choose the database engine and then based on the selected engine they choose additional parameters - hostname, port, named pipe, credentials, whatever the engine supports.

It'd be great to be able to specify the values for properties, and have the controls in the preview react to those values. Even better, it'd be great if there was a way to save the values in a set, and be able to switch between multiple such sets. In my example, I would have a set for MySQL, another set for SQL Server, another for SQLite, etc.

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.