* work in progress make it scrollabel
* adding changes
* adding changes
* cleaning the code
* cleaning the code
* not usnig a vertical scrollbar
* scanning the dom node only on mouse over
* requires tweaking
* now the scrollbar can be used alongside the hovering on the sticky scroll
* setting handle mouse wheel to false in order not to scroll vertically inside of the scrollable element with wheel
* separated the line numbers and the actual line in order to be able to just move one of the scrollbars, the editor one and the line numbers remain the same
* cleanin the code
* we are able to make the full line appear
* the width is correctly updated on the width layout change of the editor
* only rendering when top scroll changed, not when horizontal scroll changed
* using the correct editor layout info, not the one saved in the constructor
* setting the linehtml node style width to 100% so that the whole line is covered, but still not covered after the end of the viewport
* changing the total width after rendering
* placing the color into sticky line number
* removing the direct setting of the colors
* adding the background color inside of sticky line number
* using the view zone in order to increase the scroll width of the editor
* placing the view zone at the very bottom of the file
* limiting the scrollable dom height to the height of the sticky widget lines node inside, so now the sticky widget works as before
* cleaning the code
* cleaning the code
* removing useless variable
* adding 100 pixels in order to see the end of the line
* removing the console logs
* putting back the check to what it was
* using the same string convention
* adding inheritance properties in order for the background color to be propagated
* cleaning the code
* cleaning the code
* using or instead of and in the zone accessos
* cleaning the code
* cleaning the code
* cleaning the CSS
* chaning the order of the CSS properties
* cleaning the code
* Improve rendering
* No need to resize the widget from the outside, the widget resizes itself
* placing the focus method inside of the sticky widget
* céeanig the code
* Minor tweaks
* Also update widget width when the scroll width changes
* Allow overlay widgets to pass in a minimum content width
* Also update the min content width if the position doesn't change
* defining method for mi content width in px
* updating the minimum content width
* adding setting in order to be able to control whether sticky scroll scrolling should be influenced by editor horizontal scrolling
* removing redundant new line
* Fix typo
* Extract code in a function
---------
Co-authored-by: Alexandru Dima <alexdima@microsoft.com>
* Remove vscode-encrypt from node.js side
Now that we've had a version of the product that has done the migration logic, we no longer need vscode-encrypt on the node side.
This removes all references of vscode-encrypt from the node side. I will also remove it from the package.jsons in distro.
* remove machineId
* combinging the setting of max dimensions on the container and on the contents dom node
* adding the css variable in order to be able to specify the max width of the content inside
* cleaning the code
* changing the name of the variable
* cleaning the code
* placing the hover max width variable into the others category of vscode-known-variables json file
* defining a fall back value of 500 pixels
* inlinging the code
---------
Co-authored-by: Alexandru Dima <alexdima@microsoft.com>
* ci: use container only in yarn step
* chore: invalidate cache
* chore: install missing deps for packaging
* chore: remove duplicate package installations
* fix: oss build
* chore: separate deb and rpm package preparation
* chore: mount out folder when packaging
* ci: switch to official docker image
this fixes a rare issue in which the second Generate SBOM
task will fail, so a second attempt at running the pipeline will
fail when publishing the first Publish SBOM task, since it
would already have been published
* Drop support for windows versions prior to windows
10
* Prepare for windows 8 eol
* fix typo
* Revert "Prepare for windows 8 eol"
This reverts commit f65a7107280da4328014d4964ba432f3d7462de0.
* build: add watch/compile tasks for CLI
I spent time this morning working on the 'developer experience' of the
CLI in vscode, mainly getting the CLI to cross-compile chasing our
initial idea of having it auto-build in a devcontainer.
After some effort and disabling tunnels connections (to avoid having to
pull in OpenSSL which is a huge pain to cross compile), I was able to
get it to cross-compile from Linux to Windows, using the mingw linker.
I could probably figure out how to get macOS working as well with more
effort. However, I'm not a big fan of this, effectively it's one more
'platform' of build we need to support and test.
I think a better approach is downloading the latest compiled CLI from
the update server instead, as needed. That's what this PR does. It just
places the CLI where it _would_ normally get compiled to by cargo; so
far we don't need to do anything special outside of that.
A notice is shown to users if this fallback happens.
* update from review
* untested wip
* cli: fix error starting remote tunnels
Fixes#185585
Output was prefixed which prevented the lines from being split to detect the tunnel status.
* feat: use custom tag instead of custom version for MS electron releases
* chore: bump @vscode/gulp-electron
* chore: move build id to .yarnrc
* chore: rename enableUNCAccessChecks => restrictUNCAccess
* chore: update electron@22.3.11
* chore: add build info to about dialog
* chore: simplify helper function
* chore: remove unused node.js checksums
* chore: bump nodejs internal version
* chore: bump distro
* fix: revert changes to sign.ts
* chore: bump distro
* eng - add `checksum` validation support to `remote`
* eng - wire in more `checksum` support
* eng - renames for remote fetching
* eng - renames for remote fetching
* eng - disable verbose
* eng - always fetch verbose in CI
* eng - 💄
* eng - add checksums for node
* eng - report checksum matches
* eng - fix build
* eng - warn when not being able to check sum
* eng - support checksums for built in extensions
* eng - clear todo
* eng - add nodejs metadata to product.json
* 🆙 version
* 🆙 distro
* update distro
* eng - switch to checksum file
* cleanup alpine
* fix alpine
* fix bug
* eng - fetch all from remote
* eng - 💄
* eng - print checksums
* eng - fix missing import
* 🆙 distro
* undo version change
* Mangle exported functions
For #180461
This prototype tries to mangle exported functions, saving a further 440kb from the bundle size
* Fix missing call
* Also try mangling top level exported consts too
* Fixing errors
* Don't run on build files
* Skip a few more manglings and revert change to namespace
* Skip a few more monaco files
* Also mangle consts that shadow types
This increases savings up to 3325
* Also mangle exported classes
* Skip mangling more localization functions for now
* Opt out pfs
* Update build script
* Run find locations task in parallel
This should speed up compile
* Cleanup before close
* Limit workers to avoid hitting memory limit
* Limit pool size
* Skip one more mangling
* Exclude entrypoints from mangling
* Try to fix web build and clean up code
* Exempt a few more projects
* Exempt another file
* Also exempt html
* Skip mangling ext entrypoints
* Use prefix that can't be confused with rpc calls
* Fix max call stack error
* Switch prefixes
* Don't mangle ambient declarations
* Use correct way of checking modifier flags
* Workaround getCombinedModifierFlags not doing what I'd expect
Maybe needs the checker to be enabled too? Just check parent chain instead for now
* Clean up code and add logic showing how enum mangling could work
* Remove a few more skipMangles
Use entrypoints instead
* Fix entrypoint name
* build: don't apply cli 'patches' for merge check
This also needed modules installed. But with the new toml patches, the 'merge' will never fail outright, so there's no need to do a separate merge check for it imo
* reduce duplication in pipelines, cache node_modules
Currently the Cargo.toml patches are git patches, but these can break
easily when surrounding lines are changed. Instead this lets us make
"Cargo.patch.toml" which gets a structured merge.
It did not normalize to forward slashes, so the empty sourcemap was
created with a source called `foo\\bar.js`. Then the build process was
adding a new source `foo/bar.js` since it didn't see it already in the
sourcemap, but `foo\\bar.js` was later normalized. This normalized
version came first in the mapping, but didn't have any mapped locations,
so breakpoints never got set.
* Add settings for fixed-width tabs
This is meant at least partially to address #40290 and
is a continuation of the unfinished work from #40750.
* Only apply fixed width when the setting is on
* Implement chrome-like tab width behavior
Tabs shrink uniformly (down to a limit) but stay fixed-width
when the mouse is over the tab bar.
* Rename width setting to max width
* Make the ifs more readable
* Have event handlers only if the option is set
* 🎨
* Handle sizing artifacts present with wrapping tabs
To achieve this, it's best to remove the transition delay.
* Rename setting to apply only for fixed-sized tabs
* Set default fixed max tab width to 160px
* Minor code tweaks from review comments
* formatting
Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
* Use disposable listeners
* Remove redundant check for last-in-row
* Apply fade gradient from shrink tabSizing to fixed
* Trying to make the code cleaner and understandable
* Remove transition
On advice of @bpasero, removed transition because
the editor doesn't really use transition that much.
* some cleanup
* fix typo
* Simplify workaround for the overflow issue
* 💄
* 💄
* Let the tabs fix their width before closing the editor
* 💄
---------
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
* innosetup to start/stop tunnel service
* better messages for tunnel still running
* fix error
* more logs
* add '/log'
* update
* fix
* update
* add kill & timeout wait
* stop service in PrepareToInstall
* non-background: check for tunnel mutex when wizard starts
* polish tunnel mutex names, prompt if tunnel is still running
* cli: store cli in user data dir, separate per quality
Fixes#181017
On first run, the `~/.vscode-cli` will be migrated inside the user data dir of the currently running quality.
* use create_dir_all instead
* clippy fixes
* unc - adopt setting and handling of allow list (#5)
* unc - adopt setting and handling of allow list
* unc - set allow list on server too
* unc - pick our patched node.js for now
* bump electron
* unc - ignore sync is not needed with machine scope
* unc - use process set directly
* 🆙 22.5.1
* fix compile
---------
Co-authored-by: Benjamin Pasero <Benjamin.Pasero@microsoft.com>
* Use custom node-gyp
* Avoid using relative cd
* Remove ia32 for Linux
* Bump gulp-atom-electron; unblocks downloading PDBs
* Add native-is-elevated to the scan
* Remove uses of `X-UA-Compatible` meta tag
We no longer support IE
Mainly removing this from the webview html but figured we should remove the other references to it as well
* Update tests
* Fix test
* Simplify distro
Also a ton of drive-by fixing around builds:
- simplified many oneliners
- fixed missing custom npm registry call setups
- remove unnecessary and duplicate work during builds
- many many fixes