* Add test extension
This will let us test extension-related features (like the proxy URI).
I removed the environment variables in the script because they override
the ones you set yourself. We still set defaults in constants.ts.
* Add changelog entry for VSCODE_PROXY_URI
* Add terminal test for VSCODE_PROXY_URI
* Update VS Code
This adds the VSCODE_PROXY_URI environment variable.
I think the problem is that when a proxy is not in use proxy-agent
returns the global agent...which is itself since we set it globally,
causing the loop.
VS Code already covers proxies meaning we only need to do it in our own
requests so to fix this pass in the agent in the version fetch request
instead of overidding globally.
Also avoid proxy-from-env and pass in the proxy URI instead as both
http_proxy and https_proxy can be used for either http or https requests
but it does not allow that.
* Implement last opened functionality
Fixes https://github.com/cdr/code-server/issues/4619
* Fix test temp dirs not being cleaned up
* Mock logger everywhere
This suppresses all the error and debug output we generate which makes
it hard to actually find which test has failed. It also gives us a
standard way to test logging for the few places we do that.
* Use separate data directories for unit test instances
Exactly as we do for the e2e tests.
* Add integration tests for vscode route
* Make settings use --user-data-dir
Without this test instances step on each other feet and they also
clobber your own non-test settings.
* Make redirects consistent
They will preserve the trailing slash if there is one.
* Remove compilation check
If you do a regular non-watch build there are no compilation stats so
this bricks VS Code in CI when running the unit tests.
I am not sure how best to fix this for the case where you have a build
that has not been packaged yet so I just removed it for now and added a
message to check if VS Code is compiling when in dev mode.
* Update code-server update endpoint name
I have been wondering why my editor is not defaulting to two spaces and
it is because indent_size was removed from the * block.
I am not sure why we would need a separate block for package.json and
yaml anyway since they use the same settings as the rest of our code.
I would revert the commit but this change was made in a larger commit
with a bunch of unrelated changes.
* Support browsers from before 2020
As reported in #2825, #2826 and #3051, almost everything works in older browsers. This setting here prevented me from updating and I think it is an obvious enhancement to not restrict to browsers from 2020+. There should not be any measurable downsides of this change since es6 and es2020 are pretty similar with only minor differences.
* Include lib (polyfills) for <es2020 targets
* Assume all modern dom features despite es6 syntax
* Add modern dom iterators to es6 environment
Co-authored-by: Joe Previte <jjprevite@gmail.com>
Co-authored-by: Asher <ash@coder.com>
* Added instructions to install it on iOSi (#4614)
* Added instructions to install it on iOS
* Update ios.md
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* docs: add ios to manifest
* docs: clean up ios docs
Co-authored-by: The AliX Legend <alixgamer175@gmail.com>
The problem before was that the pop() caused the open in existing
instance functionality to break because the arguments no longer
contained the file.
We could simply remove the pop() but since `workspace` and `folder` are
not CLI arguments I think it makes sense to handle them in a separate
function which can be called at the point where they are needed. This
also lets us de-duplicate some logic since we create these arguments in
two spots and lets us skip this logic when we do not need it.
The pop() is still avoided because manipulating a passed-in object
in-place seems like a risky move. If we really need to do this we
should copy the positional argument array instead.
* Add tests for relativeRoot
* Remove path.posix.join
Since this is for file system paths it feels incorrect to use it on
URL paths as they are different in many ways.
* Rewrite cookie path logic
Before we relied on the client to resolve the base given to it by the
backend against the path.
Instead have the client pass that information along so we can resolve it
on the backend. This means the client has to do less work.
* Do not remove out directory before watch
This is re-used for incremental compilation.
Also remove del since that was the only use (and we can use fs.rmdir in
the future if we need something like this).
* Remove unused function resolveBase
* Remove extra VS Code CLI spawn
We already spawn VS Code's CLI when necessary in the lines below.
Having the CLI spawn unconditionally when in a VS Code environment makes
it impossible to run code-server within code-server (for example to
develop it).
* Update VS Code
This sanitizes our environment variables so code-server does not always
think it is a child spawn.
Fixes https://github.com/cdr/code-server/issues/4519.
The watch script was reloading the web server after every extension
compilation which is not necessary plus VS Code will not even be ready
at that point anyway.
Instead restart when the main compilation is finished. The string to
match with includes a "with" because otherwise it would match "Finished
compilation extensions" which is not the main compilation task where we
actually need to restart the web server.
I also replaced this.log with console.log because the former does not
include a newline and it appears we want newlines with all
these (otherwise the next log starts on the same line which looks odd).
I removed the cache clean as well because the cache is meant to stay
there to speed up builds.
* docs(CONTRIBUTING): update workflow based on vscode changes
* docs(MAINTAINING): add section for syncing VS Code upstream
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* Fix issue where HTTP error status codes are not read.
* Fix issues surrounding sessions when accessed from a proxy.
- Updated vscode args to match latest upstream.
- Fixed issues surrounding trailing slashes affecting base paths.
- Updated cookie names to better match upstream's usage, debuggability.
* Bump vendor.
* Update tests.
* Fix issue where tests lack cookie key.
Co-authored-by: Asher <ash@coder.com>
The "Starting watch-client" string no longer appears in the latest build
output. We could look for "Finished compilation with" to avoid
restarting when other tasks restart (since they also include the name
i.e. "Finished compilation extensions with 0 errors") but I figure we
might as well restart code-server when any compilation task completes in
case other tasks include changes that need to be reloaded.
* Refactor vscode router to load async.
* Bump vscode.
* fix volumes (#4497)
* Fix : recreate the termux guide to adapt the recent changes (#4472)
* Fix : recreate the termux guide to adapt the recent changes
Termux nodejs-lts changed from v14 to v16 and there are many issues people are facing such as with argon2. Hence I recommend changing it to this install process which is comparably better and has one less issue :^)
I've also added some extra things such as installing GO and Python, idk about the TOC tree but this is pretty much it.
* yarn-fmt and minor typos
https://github.com/cdr/code-server/pull/4472#issuecomment-964752180
* Fix : replace unnecessary steps to be linked to a guide
* Change from private gist to a section in Extra
* Remove reference to non-existent step
* ready to merge!
Co-authored-by: Joe Previte <jjprevite@gmail.com>
Co-authored-by: Jinu <jlandowner8@gmail.com>
Co-authored-by: Han Seung Min - 한승민 <hanseungmin.ar@gmail.com>
Co-authored-by: Joe Previte <jjprevite@gmail.com>