All notable changes to the Julia extension will be documented in this file.
The format is based on Keep a Changelog.
- Fixed REPL stacktraces file path links for Windows. Paths with tilda symbol now expand to the correct HOMEPATH. Paths with spaces are handled correctly (#2261)
Julia: Connect external REPL
now gives feedback when connected (#2182)
- REPL hooks are now properly installed when connecting to already running processes (#2182)
tmux
integration and connecting to an external process now properly work on Windows (#2182)
tmux
integration now works (#2177)- Fixed a crash in the new multi-environment support (#945)
- The plots pane and navigator now (mostly) keeps focus where it was before (#2172)
- Non-debugging Julia sessions no longer pretend they are debug sessions (#2155)
- Loading internal code now works better when multiple processes have been added in
startup.jl
(#2147)
- Workspace panel now shows
#properties
forAbstractrArray
s andAbstractDict
s (#1927) - Clicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name (#908)
- Added a sidebar element to quickly switch between differen plots (#1932)
- Added integration for persistent
tmux
sessions, especially useful together with the Remote Editing extension (#1893) - Ship CoverageTools.jl as part of the extension so that test runs with coverage always work (#1928)
- Add option to delete .cov files after test runs (on by default) (#1928)
- Add new completion modes for unexported variables (#1963, #892)
- New option for showing results inline but echoing errors into the REPL (#2121)
- New UI for setting compiled/interpreted methods for the debugger, which can allow for a significantly faster debugging experience (#1888, #31)
- Auto-completion of un-exported symbols can now optionally insert the appropriate
using
statement (#892)
- Inline stacktraces are now rendered properly on Julia 1.6 (#2091)
- Weaving a document now respects the current env (#2130)
ARGS
are now properly cleared of extension internals (#2090)- External Julia processes now respect the number of threads setting (#2141)
- URIs in markdown hovers (e.g. in stacktraces) now properly link to the right line (#932)
- Added support for the error stacks introduced in Julia 1.5 (#2142)
- Improvements to the package tagging functionality (which is now also limited to Julia 1.6) (#2144)
- The linter now understands the new
import Foo as Bar
syntax (#276)
- Path for auto-detecting Julia 1.6 binaries on Windows are now correct (#2086)
- Added auto-dection for 1.6.1 (#2076)
- Setting
JULIA_EDITOR
should now be more robust (#2067)
- Auto-completions now allow for a certain degree of fuzzyiness (#906)
- The LS now support selection range requests (use
Shift-Alt-Right
/Shift-Alt-Left
to expand/reduce the "smart selection" in VSCode) (#893)
- Fixed a security vulnerability related to the Julia path setting (#2062)
- We should not leave any more orphaned processes behind when VSCode is closed unexpectedly (#48)
- The Julia grammar is now shipped by VSCode and therefore removed from this package (#1998)
- Error handling for internal Julia code should now be more robust (#2015)
- Work around a Base issue when displaying certain types in the REPL (#2010)
- Fixed certain debugger commands not working properly (#2008)
- Step Into Target now works properly for top-level frames (#34)
- "Run Code" commands now conform to the VSCode guidelines (#1999)
- Pipes for communication between the VSCode extension host and various Julia processes are now guaranteed to be unique (#1980)
- REPL output form activating a new environment via the GUI now doesn't display a Julia prompt (#1981)
- Better crash reporting when commands fail (#1985)
- Fixed a typo that made the more robust REPL hooks not very robust at all (#1973)
- Fixed a rare bug where showing variables while debugging might result in a crash (#32)
- LaTeX-rendered equations are now properly hidden behind the search bar in the docs pane(#1970)
- REPL hooks are now more robust (#1968)
- Unparametrize the wrapper introduced in #1943 (#1957)
- Debugger is no longer marked as experimental (#1965)
- We now use the
ast_transforms
machinery introduced in Julia 1.5 when appicable (#1959)
- Fixes to our Azure Pipelines infracstructure
- Fixed a regression when displaying SVGs in the plot pane (#1939)
- Fix an issue with displaying values with incorrect
convert
methods (#1943)
- Explorer context menu entries are now only shown when a REPL is running (#1933)
- Julia 1.6 binaries are now auto-detected (#1918)
- Removed references to outdated Julia syntax that caused incorrect auto-indentation (#1910)
- Stacktraces should now be properly truncated again (#1912)
- Updated the vendored Plotly and fixed auto-resizing for Plotly and VegaLite plots (#1911)
- Relative environment paths are now persisted properly (#1905)
- User supplied environment paths are now checked for validity (#1907)
- Corrected environment handling in certaing cases (#1903)
- Live testing is disabled until it can be fixed (#1902)
- Getting the module at the current cursor position now no longer waits until the LS is started (#1892)
- Stop throwing an error instead of waiting for the LS being ready (#1889).
- Fixed an issue with formatting
if
conditions (#124).
- Displaying profiler results now works again (#1887).
pwd
is now properly set for the live unit testing task (#1886).
- The plot pane now properly scales images (#1882).
- The LS now correctly handles the
$/setTrace
notification (#868).
- The progress bar now shows an estimate of the remaining time (#1868).
- Progress logging can now be disabled in the settings (#1867).
- The Julia explorer sidebar element now contains a documentation browser (#1458).
- Added a command for tagging new package versions (#1870).
- Added a task for live unit testing (#1872).
- The LS depot path is now located in the extension global storage instead of the extension's install directory, which allows the latter to be read-only (#1863).
- Improve docstring formatting (#122).
- Comments and whitespace in multi-line tuples are no longer removed when formatting a file (#121).
- Removed the telemtry nag message (#1676).
- Removed
@
and!
from the list of non-word characters, so double clicking@foo!
now selects the whole macro (#1861).
- Improved the algorithm for finding the current code block (#860).
- Fixed jmd parsing (#859).
- THe linter now doesn't attribute every
eval
call toCore.eval
(#237).
- It is now possible to customize the look of inline results (#1846).
- Support for the upcoming
import Foo as Bar
syntax (#220).
- Switched to a new symbol store format (#1857).
- Major rewrite for CSTParser (#190).
- StaticLint.jl now supports Julia >= v1.6 (#227).
- Added additional type inference for the linter (#234).
- We now use the correct binary when setting the
JULIA_EDITOR
on MacOS for users of VSCode insiders (#1852). Base.displayble
is now correctly extended instead of creating a local version (#1856).- Conditions for line breakpoints now work again (#26).
- Debugger now correctly unwraps
UnionAll
s when collecting global refs (#27). - The Linter now correctly handles
Base.@kwdef
(#233).
- Commands for moving between code cells (#1828).
- Backtraces are now properly truncated in the REPL (#1841).
- Debugging or launching a file now works in workspaces with more than one directory (#1789).
- Pressing
^C
more than three times in one second now sends aSIGINT
to the Julia process (on non-Windows OSs), which should make for more robust interrupts (#1775).
- Inline evaluation now waits for the LS to start up instead of throwing an error (#1760).
julia.environmentPath
needs a REPL restart, so added a note to that effect (#1778).- The
language-julia.executeFile
command can now be called with a string argument for easy integration with custom keybindings (#1779). - Commands that require finding Julia environment files now don't need a running REPL (#1757).
- When using inline evaluation commands that move the cursor after evaluation, the cursor is now only moved if the user hasn't interacted with it (#1774).
- Debugging in a new process now properly loads the user's
startup.jl
(#1806). - Update to JuliaInterpreter.jl 0.8 (#24).
- There can only be one LS startup notification (#1798).
- Plots are now properly displayed when the plot pane is disabled and only inline results are enabled (#1795).
- Added some error handling when displaying error stacktraces inline (#1802).
- The attached debugger now properly sets
tls[:source_path]
and doesn't crash the Julia REPL on errors (#1804). - Staktraces are now properly truncated for inline results (#1812).
- Progress messages are now properly flushed, so that the progress monitoring is always be up-to-date (#1805).
- Fixed an issue with parsing kwfuncs using
where
(#212). - Added missing
nothing
checks that could cause issues when linting files (#221, #223).
- Support for Julia 1.5.3 and 1.5.4 default installation paths (#1755, #1759).
- New up-to-date changelog (#1750).
- Inline evaluation now adds the evaluated code to the REPL history if the
julia.codeInREPL
options is set (#1754). - The extension now watches the global Manifest as well as Manifests in the workspace for changes and prompts the LS to re-index accordingly (#1756).
- Push internal Julia modules to the front of
LOAD_PATH
to prevent loading code from the workspace instead (#1747). - Fixed a typo in the tableviewer code (#1749).
- Evaluation now uses unbuffered channels for communication, which might fix a rare off-by-one-result bug (#1762).
- The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases
Array
andDict
instead of theirAbstract...
supertypes (#1709). - Inline evaluation and the REPL can now be interrupted with the
Julia: Interrupt Execution
comamnd (or its default keyboard binding ctrl+c) (#1690). - ProgressLogging.jl's progress bars are now displayed in the editor (1579).
- The language server process is now started with the
JULIA_LANGUAGESERVER
environment variable set to1
(#1707). - Added commands to re-start the LS or re-index the symbol cache (#1721).
@edit
now works properly on code-server instances (#1737).- Added commands to
cd
to the current directory,Pkg.activate
the current directory, orPkg.activate
the current files nearest project. These commands are also available in the file explorer (#1743).
- Updated some JS dependencies.
- The plot pane is now opened in a new column by default, but also remembers it's last position (#1554).
- The
julia.NumThreads
setting is now machine-overrideable (#1714). - Updated the Julia grammar definition (#1720), which fixed various bugs.
julia.usePlotPane
can now be changed without requiring the Julia process to be restarted. Additionally, the relateddisplay
machinery is now much more robust (#1729).- The "play" button in the editor toolbar now runs the file in the integrated REPL process (#1728).
- All inline results are now removed when the REPL process exits (#1738).
- Stracktraces are now rendered properly (i.e. with linebreaks) once again (#1692).
- The module indicator is now correctly initialized (instead of
Main
) (#1516).
- Both inline evaluation and the REPL now follow the changed soft-scope rules for Julia 1.5 and newer (#1665).
- Updated JS dependencies.
- We now show an error message when both insiders and the regular extension are loaded.
- Updated JS dependencies.
- Default paths for Julia 1.5.1 and 1.5.2.
JULIA_PKG_SERVER
is now an exposed setting.Julia: Stop REPL
command.
- Toolbar icon now follows the style guide (outline instead of filled).
- Run/Debug commands now work when invoked from the command palette.
ARGS
now no longer contains extension internals.- Use correct default path for Julia 1.5.
- Fixed a world age error when using the integrated table viewer.
- Revise is now loaded without stealing the REPL backend for newer Julia versions.
#%%
and# %%
are now valid cell seperators.- Improved crash reporting.
- Improved Azure build pipeline
- Updated some JS dependencies
- This plugin is now also available on open-vsx.org
This is identical to the latest 0.17 release.
- Global variable support in the debugger variable explorer
- Debug and run buttons above Julia files
- Support for step in targets in the debugger
- Profile viewing support
- Stackframe highlighting for inline evaluations
- Configuration option to exclude folders from linting
- Add an extension API
- Inline display of evaluation results
- Workspace view
- Add an experimental debugger
- Improve cell delimiter regex so that it won't recognize YAS-style section headers as cell separator anymore (#1256, #1259)
- Make Language Server indexing async
- New linting capabilities: call checks, static
if
blocks, unused free parameters, unhandledinclude
statements, clashing module names, and pirates. - Enable Code Actions: explicit re-export, replace qualified names with using statements
- Add support for Julia 1.4/5-DEV
- Improved robustness, e.g. handling of unicode
- Better presentation of documentation
- Fully implement LSP 3.14
- StaticLint: improved path handling (file tree), extended macro handling, handle local/global variables, general refactor with speed/robustness improvements
- Update CHANGELOG
- Support for Julia 1.3
- Configuration options for the code formatter
- Bug fixes
- Add support for running a selection with Alt+Enter
- Fix a bug in the LS when an environment path doesn't exist
- Clean up labeling of commands
- Various bug fixes
- Various bug fixes
- Add
vscodedisplay()
function for a grid view of tables - Add a command to delete all plots from the plot pane
- Store Julia environment choice in settings
- Auto detect Julia environments
- Change how execute block sends code to the REPL
- Preserve focus of REPL when plot pane is shown
- Fix weave preview
- Make tasks work with julia environments
- Add a test task that outputs coverage information
- Open docs after build task
- Support vega 3, 4 and 5, and vega-lite 2 and 3
- Allow paths starting with ~ for julia bin location
- Fix JULIA_EDITOR integration on Mac
- Add support for custom sysimages
- Reworked syntax highlighting
- Add support for code cell execution with Shift+Enter
- Add option to permanently opt out of crash reporting
- Fix bug related to Revise integration
- Add option for passing command line arguments to julia REPL process
- Rework communication between REPL and extension
- Auto-detect julia 1.1.1 and 1.2.0
- Fix julia 1.1 compat issue in SymbolServer
- Update vega-lite to 3.0 and vega to 5.2
- Fix another julia 1.1 compat issue
- Fix julia 1.1 compat issue
- Various bug fixes
- Add option to enable/disable plot pane
- Search for julia 1.0.4 and 1.1
- Update CHANGELOG
- Add julia 1.0 support, drop julia 0.6 support
- Add support for interactive Plotly figures
- Various bugfixes
- Fix automatic julia detection on Mac
- Fix some small bugs
- Auto-detect julia installation
- Telemetry support
- Crash reporting
- Fix weave support
- Various bug fixes
- Update changelog
- Enable multi-root workspace support
- Bug fixes
- Add eval into module option to REPL
- Add toggle lint command
- Add toggle log command
- Add execute file command
- Add execute block command
- Add support for region folding
- Bug fixes
- Use VS Code tasks for build, test and benchmark
- Add reload modules command
- Add rename command
- Bug fixes
- Bug fixes
- Language server status bar icon
- julia 0.6 syntax highlighting
- Bug fixes
- Use LanguageServer.jl
- Format Document command
- Actionable diagnostics
- Support for .jmd files
- Plot pane
- Run package tests command
- Lint package command
- Scope Ctrl+Enter to julia files
- Fix whitespace bug on Windows
- Migrate to a language server protocol design
- Add completion provider
- Add definition provider
- Add hover provider
- Add signature provider
- Add integrated julia terminal
- julia 0.5 compatibility
- Update README
- Add linter support
- Patch release to test upgrade procedure
- Add latex completion
- Add "Open Package Directory in New Window" command
- Update project home URLs
- Initial release