Giter Club home page Giter Club logo

hdtplugintemplate's Introduction

Important Preface!!!

If you want to use the template, it's easier to get it on the visual studio marketplace.
This project builds the VSIX extension that installs the template and will alert you of updates.
You can of course clone the repository, and I'll be adding the TemplateProjectProject to Git just as soon as I refine the build process.

Purpose

This project should help jump start your development of your own plug-in for the Hearthstone Deck Tracker
Once you create a new project, you should be 100% ready to test the default functionality. Just seeing this basic window pop-up should help you begin your development with confidence.

Example Plug-In Display

The example functionality shows the card name and artist name when you mouse over a card in your hand.

Helpful Plug-Ins

Development

Configuration

  • It does come with the lib files but you should make sure to get the latest versions of HDT and HearthDb
    • Copy them to the lib folder
    • Verify the project reference versions
  • Set Plug-in Assembly Version
  • Press Ctrl+W,T to see the ToDo list. Make sure to delete any example functionality you don't want to keep

Versions

Create a Build Event

You can create a build event in the project's properties to publish your plug-in .dll into your HDT plug-in folder.
This way you can just do a debug build and then fire up your HDT to test it out.
Remember, you have to restart HDT after you build a new .dll to clean out the old version from the session memory.

if $(ConfigurationName) == Debug ( copy "$(TargetDir)$(ProjectName).*" "%AppData%\HearthstoneDeckTracker\Plugins" /y )

Debugging

You can attach your VS debugger to a running HDT session by pressing Ctrl+Alt+P, then select HearthstoneDeckTracker from the list of running processes.
You can press Shift+Alt+P to reattach to the process after the first debugging session to skip the selection window.

Attach To Process

Remember to click the Show Threads in Source (or ensure it's enabled) once the debugger starts

Show Threads In Source

Localization

In the StringsResource.resx file you can enter the user visible text that should be translated.
AutoResxTranslator is an amazing and helpful tool.

Publishing

What to remember to do when publishing

  • Remember to set your VS Build to release
  • Open your bin\release folder,
  • Right Click on ONLY your plugin.dll and select compress to zip
  • If there are additional .dll files in this folder, make sure all of the project references have the local copy setting, set to False
  • .dlls from NuGet Packages will be in here, just ignore them.

Links

Documentation

Acknowledgments

Wanted to say thanks for the great work they did to pave the way for me.

Stats

GitHub Latest GitHub All Downloads

hdtplugintemplate's People

Contributors

vexharbinger avatar

Stargazers

 avatar

Watchers

 avatar

hdtplugintemplate's Issues

VSIX listed under tools in the VS MarketPlace

I read a thread that said template VSIXs can not contain anything aside from the template including Nuget Pkgs.
Not sure if it really is the Nuget Pkgs or if it's just because of another file (like ReadMe) and the way it's included but I'd rather it be listed under templates

Migrate from Project Template to Project Template Project

The migration of the exported template and the hand editing of them prior to generating the VSIX is cumbersome and reduces the quality of our SDLC. Need to see if we can convert our project template into a Project Template Project and then chain the workflow to utilize the correct templates into the VSIX.

The places that must be redone by hand are;

  • MyTemplate.vstemplate
    • After TargetFileName="ReadMe.md" we need to add OpenInEditor="true"

Show/Hide label can fall out of sync

Just need to add a test when settings is opened to know the correct state. Because if it's vis and you quit HDT then reopen it, the panel will be opened but the btn is labeled "show"

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.