Code Monkey home page Code Monkey logo

Comments (44)

Danielku15 avatar Danielku15 commented on June 23, 2024 6

I created yesterday a small prototype of BetterStartPage for VS2019 and the patching works. The main drawback is that since VS2019 all extensions are loaded asynchronously in the background. This means also for BSP that it is loaded delayed. As a result the Quick Start Window is showing some time the original VS version, and then my extension kicks in and restructures the UI.

Here a small demo Gif: https://coderline.net/bsp2019.gif

I'm not really convinced that this is really a good solution as it is too slow. I think an alternate solution would be better. Like the "Start Page on startup" but with a BSP inside.

Update 1:

The "Start Page on startup" approach works a bit better. Extensions get loaded faster and I can simply trigger an open of the Quick Start Window:

Demo

The adjustments I made so far are:

  • I made the window resizable
  • I remember the position and size of the window to restore it upon next launch. Proper multi-monitor handling to prevent out-of-screen window is outstanding
  • I replace the "Open Recent" area with a tab control where I place BSP and the Open Recent.

TODOs would be:

  • Fix some issues I detected on the solution open behavior (use correct VS2019 command to open solution)
  • Proper styling of tabs and BSP to match the theme.
  • Port the File > Open Favourite menu item to VS2019

Update 2

I made a small UI draft how it could look like finally. I think I might go for the all-in-one. It does not hide anything and devs have large screens anyhow.

** With Tabs **
UI Draft

** All in One **

UI Draft - Large

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024 2

I checked today a bit the implementation of Microsoft on the new launch dialog. Again with some hacks it is likely adjustable and extendable with a custom UI. I quickly made an extension that patches the dialog to make the MRU list 50% transparent and maximize the window:
image

Technically it would work even though it takes a few seconds until the layout of the quick start window changes. I will need to check if I can make Visual Studio auto-load my extension faster but I fear with the async loading of extensions it is not possible any faster.

I'm currently thinking of how the UI could look like. If there is really interest from the market I could have a closer look to bring a 2019 version of Better Start Page.

from betterstartpage.

czuck avatar czuck commented on June 23, 2024 2

I suggested the feature int he Developer Community for VS, if enough people vote it up it up..
https://developercommunity.visualstudio.com/idea/598272/allow-customization-of-start-page.html

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024 2

I just published a 2.0.1 with various improvements. I hope this resolves some issues:

  • For the "not working at all" I only found one potential cause but I'm not sure if it is solved, please update and try again.
  • Some style fixes were made for dark theme. (style is not yet final anyhow)
  • Resizing should work again
  • Config import from old BSP versions should work now again.
  • Attempt to fix duplicate Quick Start Windows when launcher is used instead of empty environment startup.

Please update and have a look if the basics are working now.

from betterstartpage.

jdkoehler avatar jdkoehler commented on June 23, 2024 1

I've just installed 2.0.1, didn't have an earlier version installed but imported the VS 2017 config. Initially the default Startup dialog is centered, but then the extension dialog appears in the top left corner.
{...remainder deleted...}

I had that same problem. The issue that Visual Studio is opening it's Start window and BSP is also opening it's Start page.

To fix that, start VS, close the BSP Start page (it's the one without the "Continue without code -->" link. Then in the VS Start Window (the one with the "Continue without code -->", click that link. Then in Tools > Options > Environment > Startup: Set "On startup, open:" to "Empty environment" then click "OK". Close and restart Visual Studio and see if that fixes it for you.

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024 1

I just published version 2.0.2 of the extension. What is included:

  • [Fix] Quick Start Window does not open multiple times anymore in case "Empty Environment" is not used
  • [Fix] Quick Start Window is properly centered now
  • [New] New Look & Feel that is more in-line with Visual Studio
  • [New] The old "Edit Mode" was replaced by context menus and a small [⋮] menu button.

Looking forward to get your feedback.

from betterstartpage.

stijnherreman avatar stijnherreman commented on June 23, 2024

The VS 2017 documentation mentions how to customize the start page with the Visual Studio SDK, but the VS 2019 documentation does not. So I assume it's currently not possible for this extension to support VS 2019.

There's a request on Developer Community to reintroduce the start page.

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

I also doubt that I will be able to port this over. I haven't seen any extension system for the new launcher dialog yet. During the evaluation time of VS2019 I submitted requests that Microsoft adds an own Tab to the launcher with similar functionality as in BetterStartPage, but nothing happened.

from betterstartpage.

magicmayhem avatar magicmayhem commented on June 23, 2024

It would be really great if you could work on this. It's a real step backwards from Microsoft not to have a custom start page.

from betterstartpage.

confusedsushi avatar confusedsushi commented on June 23, 2024

Is it possible to add a custom entry to Tools -> Options -> Environment -> Startup -> On startup, open:?

If so, why not create your very own startup page? Simply open a Window which renders some HTML similar to the old BetterStartPage.

from betterstartpage.

jdkoehler avatar jdkoehler commented on June 23, 2024

@Danielku15 What if, as a quick-and-dirty work-around, you updated BetterStartPage to work in Visual Studio 2019 with Start Page on startup already installed?

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

I pushed my initial changes to GitHub and deployed an early-access version to the Marketplace. There is still a bit to do, but you can already let me know if it fits your needs and what you'd like to have changed.

https://marketplace.visualstudio.com/items?itemName=Danielku15.BetterStartPage2019

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

For me, extension for VS 2019 (16.1.3) is not working. Window is not resizeable, i could not add any project, import do nothing. How can i help to debug this problem?

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

If there are catched exceptions in the plugin you should find infos in the ActivityLog of Visual Studio: https://devblogs.microsoft.com/visualstudio/troubleshooting-extensions-with-the-activity-log/
Is your error here related to #43 that you reported or additionally?

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

That is another problem. I thought that importing old configuration could help, but sadly, no.

As for errors, there are errors after loading extension, but i'm not sure if these are from this extension or some other:

N# Type Description GUID Hr Source Time (UTC)
1505   Importing pkgdef file          c:\users\sylwek\appdata\local\microsoft\visualstudio\16.0_963bad19\extensions\ogzdt31d.2nh\betterstartpage.pkgdef     VisualStudio 2019/06/17 09:42:52.153
1506   Saving pkgdef cache meta data     VisualStudio 2019/06/17 09:42:52.154
1507   Saving pkgdef cache time stamp     VisualStudio 2019/06/17 09:42:52.154
1508   Newest node in pkgdef cache          Software\Microsoft\VisualStudio\16.0_963bad19_Config     VisualStudio 2019/06/17 09:42:52.200
1509   InitializeCache: Post initializing cache     VisualStudio 2019/06/17 09:42:52.200
1510   PkgDefManagement startup complete     VisualStudio 2019/06/17 09:42:52.201
1511 ERROR Failed to read Version   80070002 VisualStudio 2019/06/17 09:42:52.225
1512 ERROR Binding Redirect / CodeBase entry from configuration hive is malformed, ignoring.          Software\Microsoft\VisualStudio\16.0_963bad19_Config\RuntimeConfiguration\dependentAssembly\bindingRedirection{BB256134-B73E-47AA-93B4-C49FF433E5B1}

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Otherwise there are no distinct errors besides UI libraries:

N# Type Description GUID Hr Source Time (UTC)
1560 ERROR Loading UI library {2FFE45C4-5C73-493C-B187-F2E955FF875E} 800a006f VisualStudio 2019/06/17 09:42:53.629
1561 ERROR Error loading UI library for package Microsoft.VisualStudio.LanguageServices.TypeScript.TypeScriptPackage, Microsoft.VisualStudio.LanguageServices.TypeScript, Version=16.0.0.0, Culture=neutral. HrLoadNativeUILibrary failed with 0x800a006f.      

from betterstartpage.

jdkoehler avatar jdkoehler commented on June 23, 2024

I'm having the same problems as @SylwesterZarebski. I've tried it on four different Windows 10 machines.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Start screen looks like (using dark theme):
obraz

Above screen is taken from another PC. Extension has version 2.0.0 (preview) from marketplace.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Thanks, extension is working.

I found only one slight bug. When upgraded from 2.0.0, there is configuration mismatch and extension gives popup to reset configuration. Then extension do not react to anything, looks like reset is not successful or internal config is not properly initialized. Restarting VS is sufficient to bring everything to normal.

from betterstartpage.

jdkoehler avatar jdkoehler commented on June 23, 2024

2.0.1 is working for me. On four machines, I did three upgrades and one "clean" (uninstalled then installed) and all worked with no issues. Imported a BSP configuration from VS2017 and it also worked!

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

When upgraded from 2.0.0, there is configuration mismatch and extension gives popup to reset configuration.

Yes, this is possible. They got somehow incompatible with the settings-serialization I use. I had to revert some things to be compatible with the export/import files. But clean installations should work. I decided to reset the configuration in case of an error in the settings loading.

2.0.1 is working for me. On four machines, I did three upgrades and one "clean" (uninstalled then installed) and all worked with no issues. Imported a BSP configuration from VS2017 and it also worked!

Great to hear. Then I can go forward with making it better from the UX. The UI still feels a bit prototype-ish. I want to align it better with Visual Studio.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

@Danielku15 commented on 18 cze 2019, 16:05 CEST:

[...] The UI still feels a bit prototype-ish. I want to align it better with Visual Studio.

That would be great!

from betterstartpage.

stijnherreman avatar stijnherreman commented on June 23, 2024

I've just installed 2.0.1, didn't have an earlier version installed but imported the VS 2017 config. Initially the default Startup dialog is centered, but then the extension dialog appears in the top left corner.

image

I can move the dialog, but the position is not remembered when closing and restarting VS. It does remember the size of the dialog.

image

When closing the dialog, Visual Studio itself appears and I can move the second dialog that was still in the top left corner. Looks like the extension dialog is opened twice.

image

Please let me know if there's any other information you need to investigate this issue.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

I just spot i have similar problem. Window position and height are not saved, only width. After opening start window is shown at the same position with reset height.

from betterstartpage.

stijnherreman avatar stijnherreman commented on June 23, 2024

Thanks @jdkoehler that fixed the duplicate dialog and odd positioning. The positioning is still not ideal and it isn't remembered, but it's a lot better.

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

@stijnherreman This information should be enough, I have an idea where the misplacement in your scenario came from. The plugin works currently best if you use the startup type "Empty Environment" as described in the extension readme, this should also solve the issue on the misplacement and duplicate dialog. I will try to improve the situation, but as highlighted earlier in this issue, the extension loading delay makes BSP2019 not so nice to use. It takes quite a bit until you get the options you would expect.

You can follow the progress on the outstanding part in PR #42

In 2.0.1 I changed from a "remember position" approach to a "center in main window" or "center on screen" approach. Remembering the position has a risk of misplacement on multi-screen scenarios.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Centering is not really centered. It is off to right by about 150 px. Try setting width at full screen width, close and reopen VS, and opened start window will be moved right from original centered position.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Thanks a lot! It looks great.

Maybe some polishing could be done with popup windows - group new/edit or settings to be in line with VS theme - maybe inline edit would be simpler?

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

PS. Start Window still not really centered and do not save height when closed. I use 'Empty Environment' settings.

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

Maybe some polishing could be done with popup windows - group new/edit or settings to be in line with VS theme - maybe inline edit would be simpler?

Yes, some polishing can still be done. I still need to do some research on what resource keys Visual Studio is using and if I can actually import them somehow. I removed inline editing exactly because it is not simpler. It brings in quite a complexity, that's why I decided to remove the old inline-editing via "edit mode".

PS. Start Window still not really centered and do not save height when closed. I use 'Empty Environment' settings.

I cannot confirm this in any of my tests on my 3 environments. Also according to the code the centering leaves no doubt in centering:

var mainWindow = Application.Current?.MainWindow;
if (mainWindow != null && mainWindow != _instance && mainWindow.Visibility == Visibility.Visible)
{
_instance.Left = mainWindow.Left + (mainWindow.ActualWidth - _instance.Width) / 2;
_instance.Top = mainWindow.Top + (mainWindow.ActualHeight - _instance.Height) / 2;
}
else
{
_instance.Left = Screen.PrimaryScreen.WorkingArea.Left + (Screen.PrimaryScreen.WorkingArea.Width - _instance.Width) / 2;
_instance.Top = Screen.PrimaryScreen.WorkingArea.Top + (Screen.PrimaryScreen.WorkingArea.Height - _instance.Height) / 2;
}

Do you maybe have any special setup? e.g. some High DPI display, portrait mode etc? Also be sure that you do not have any old version of BSP in parallel.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

On two my systems with 2.0.2 version it looks like:
obraz
It is not centered.

Only start window set as 'Start window' is centered. When set as 'Empty environment' it is not.

Also saving height do not work in both settings.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Maybe this is not working?:

QuickStartWindow.DialogCreated += (s,e) => QuickStartWindow.Instance?.PatchDialog();

                QuickStartWindow.DialogCreated += (s,e) => QuickStartWindow.Instance?.PatchDialog();
                if (QuickStartWindow.Instance == null)
                {
                    showStartWindowCommand?.Invoke();
                }

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

On two my systems with 2.0.2 version it looks like:

Unless you "censored" all your projects this looks to me like that there is a lot more not working than just the aligning. There are no recent projects, no favourite projects etc.

Maybe this is not working?:

No, if this would not be working the whole extension would not work. You would not see anything of BSP. The PatchDialog is the piece of code that also adds the "Open favourite" area.

Only start window set as 'Start window' is centered. When set as 'Empty environment' it is not. Also saving height do not work in both settings.

We have been that far, this level of details does not help finding out what is going wrong. Unless really some more people report the same behavior I think it might be a problem specific to your environments that I do not have.

Maybe you can clone the repository, switch to the vs2019 branch and give it a shot with debugging the extension. I will also try to add some more logging in the next version that will tell us maybe why the positioning is not working as expected.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Sorry, i've "censored" image ;-). This is working perfectly.

As 'not working' i mean it is not working as expected, eg. in DialogCreated event setting some of properties not behave as it should.
I've try to debug extension, but it is "black magic" at this moment, thus it could last long...

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

@SylwesterZarebski I just published version 2.0.4 to the marketplace. It would be great if you can start your Visual Studio with /Log and provide the activitylog. I hope by the newly added logging information I can find out why the window is not positioning was it should.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Ok, text from log for source BetterStartPage:

description

Ensure GetToCode package is loaded
GetToCode package loaded, resolving ShowStartWindow Command
Show Start Window command loaded
Registering 'Open favourite' command
Command registered
Registering to Quick Start Window event
Quick start window not open, triggering show start window command
Begin Patching Quick Start Window
Restoring window width 1524
Restoring window height 710
Positioning window based on main window. MainWindow[96,92,1936,1056], QuickStartWindow[1524,710]
Quick Start Window positioned to: 302,265
Searching for ProjectMruGrid in Quick Start Window
ProjectMruGrid found, reorganizing layout and injecting BetterStartPage
Patching done1

VS window is maximized and system taskbar is on top.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

I've tested some combinations and i think i got it. It looks like VS coordinates are wrong when maximized - they are not maximised ones, but state from before maximisation.

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

Okay, I think this will help me making a fix. I was partially able to reproduce a mispositioning on my side. Looks like this is a strange behavior in WPF. The location and size properties might be the ones from an unmaximized state. I will rework the logic to take the window state into account.
https://stackoverflow.com/questions/4806088/how-can-i-find-the-position-of-a-maximized-window

from betterstartpage.

Danielku15 avatar Danielku15 commented on June 23, 2024

@SylwesterZarebski Please update to 2.0.5 and let me know if you still experience the resizing and positioning infos.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

Now it looks perfect. There is only height saving problem - it is always 710...

from betterstartpage.

stijnherreman avatar stijnherreman commented on June 23, 2024

Positioning is fine now with 2.0.5
I lost my config after updating from 2.0.1 to 2.0.5, but simply imported it again from the VS 2017 export and it persists through sessions, so I can't give any debugging info.

Thank you for the work so far, this extension gives a significant productivity boost.

from betterstartpage.

stephane-albus avatar stephane-albus commented on June 23, 2024

When I change the "Project Display Mode" from Large to something else it works but at the next launch of VS it returns to Large mode.

from betterstartpage.

SylwesterZarebski avatar SylwesterZarebski commented on June 23, 2024

VS 2019 version 16.2.0 bring saving start page positions/size with maximization support recently, thus i think it could be safely deleted (in extension code) or disabled if this version (and above) is detected.
Now there is some minor problems when VS saves maximisation state, but extension bring back old position (from before maximisation), but width is as maximised.

from betterstartpage.

farangkao avatar farangkao commented on June 23, 2024

In General works good for me with 2.0.5,
few minor problems:

  • Sometimes the Original Dialog appears (especially on Startup), but not big deal once closed and reopened, the Better Start Page is shown
  • The Settings "Project Display Mode" seems not to be saved permanently, or not reapplied.

from betterstartpage.

Related Issues (20)

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.