All notable changes to the "Haskutil" extension will be documented in this file.
Organize imports
now also sorts imported element lists (#86):
When sorting import declaration if"haskutil.sortImportedElementLists"
is set totrue
(default value)- An option to place operators at the end of imported element lists #88:
When inserting new elements viaAdd import
or sorting imported elements viaOrganize imports
operators can now be placed after other type of elements, i.e. after functions, constructors or types.
This behavior is controlled via new configuration setting"haskutil.placeOperatorsAfterFunctions"
which is set tofalse
by default
Add import
action's handling of operators containing.
(dot)(#80):
Previously no quick fix action was emitted for such operators (e.g.(.&.)
or(.=)
)Add import
action's handling of names containing'
(single quote) (#81):
Previously no quick fix action was emitted for such names (e.g.foldl'
)
Remove unused imports
action when import declaration contains elements with(..)
(#40):
Fix behaviour ofRemoveUnusedImportProvider
in regards to removal from import lists containing elements with export lists, e.g.Sum(..)
orSum(fromSum)
;Replace wildcard
action under GHC 9.6.5 (#79):
FixTypeWildcardProvider
behavior when running with latest GHC handling changes in corresponding GHC error message format;
- Switch
branch
CI build to run tests against the latest GHC
- Intermittent test failures
Failures withCancelled
error message CHANELOG
formatting
- Purple Yolk extension is added to the list of
haskutil.supportedDependencies
(#73 - thanks to Taylor Fausak for contribution)
- CI build on MacOS
- Extension icon
Dependency not installed
warning message extension links:
Instead of linking to extension's Marketplace page link to VSCodeEXTENSIONS
view
Focused to linked extension viaworkbench.extensions.search
command-link
CHANGELOG
formatting:
Add missing spaces toCHANGELOG.md
for proper newline rendering
haskutil.supportedDependencies
configuration option:
Make the list of supported Haskell diagnostic generating extensions configurable
OrganizeExtensionProvider
: false positive ofExtension are unorganised
Aligned extension were incorrectly detected as being not alignedImportProvider
:Organize imports
behaviour on Windows
Fix invalid parsing of imports in file with\r\n
(Windows) line ending
As a result applyingOrganize imports
would previously lead to corrupted imports- Fail CI build in case of test failure:
Previously build would still be green even if some of the test wer failing
ImportProvider
:
Do not add(..)
when adding import for operators
OrganizeExtensionProvider
:
Make sure allLANGUAGE
extension are aligning using minimal padding
Fixes #41ImportProvider
:
Suggest adding class or data type with(..)
, i.e. with all defined constructors/members
Fixes #44
haskutil.checkDiagnosticsExtension
configuration option:
Check if any of recommended VSCode extensions which generate Haskell diagnostics is installed Optional, default istrue
QualifiedImportProvider
:- Suppress
Add: "import qualified ... as undefined"
suggestions - Avoid annecessary alias in qualified import: fixes #48
- Suppress
certificate has expired
error in tests:
Switch to VSCode version1.66.2
which does not have this problem
- Oldest supported VSCode version is now
1.48.0
RemoveUnusedImportProvider
on GHC >9.0.2
:
FixCannot read properties of undefined (reading 'removeElement')
exceptionTypeWildcardProvider
:
Handle various error message formats:- old from GHC <=
9.0.2
- new from GHC >
9.0.2
- old from GHC <=
QualifiedImportProvider
on GHC >9.0.2
:
Newer GHC uses a different error message formatExtensionProvider
:- Do not create duplicated QuickFix actions
- Switch to
DataKinds
extension in test
- Update all dependencies to the latest versions
- Extend matrix build with various supported GHC versions
- Bump dependencies to fix security vulnerability
- Stop putting images into *.vsix package
This fix reduces in ~20 times (oops...) andREADME.md
points to Github-hosted files anyway - Better isolation for tests:
Set custom--user-data-dir
so the test would not interfere with the VSCode installed locally
- Fix extension publishing via
npm run publish
- Github actions build:
- Matrix builds on multiple platforms
- Publish to Marketplace on version tag push
- Test coverage
- CHANGELOG.md warnings
- Travis-ci build
- Bump
lodash
dependency version to fix security vulnerabilitiy
haskutil.organiseImportsOnInsert
configuration option
- Run multiple Hoogle requests in parallel
- Test coverage
- Exclude unrelated files from .vsix package
- CHANGLELOG (add missing contributer)
- Add ghcide as an option for base extension populating PROBLEMS
(#29 - thanks to ArturGajowy for contribution)
- Untitled files re-opening themselves after closing
(#28 - thanks to dramforever for contribution) - Haskutil complaining about non-Haskell files with unorganized imports
- Organize import can produce code that the extension considers unorganized (#26)
- Align remaining imports when removing unused imports
- Adjust Unused imports diagnostic range when imports are edited/moved
- Add
Remove unused imports
feature
- Add ghcid as an option for base extension populating
PROBLEMS
- Background color of Marketplace banner
- Fix detection of missing qualified import on Linux
- Fix wildcard replacement under GHC 8.8
- Better handling of wildcards
(nested parenthesis and()
as replacement)
- Settings for turning on/off individual features
- Fix 'Not in scope' error detection (different platforms)
(#16 - thanks to serras for contribution) - Make LANGUAGE pragma handling case insensitive
- Fix type wildcard error detection on Linux
- Fix type hole error detection on Linux
- Upgrade dependent packages to fix security vulnerabilities
- Rolling back version 0.4.1. This version is identical to 0.4.0
- Replace type wildcard with GHC suggestion
- Minor fix: remove redundant workaround
- Fill typed hole with GHC suggestion
- Bump dependencies to fix security warning in
node.extend
- Check if dependent extension is installed
- Organize LANGUAGE extensions (split, align and sort)
- Configuration of the padding of
import
inqualified
area
(should we always pad with 9 spaces even if there is noqualified
import)
- Organize imports (sort and align)
- Add top-level signature (documented)
- Sort
import
statements - Add top-level signature (undocumented)
- Additional supported
LANGUAGE
extensions
- Removed dependency on
Haskero
- Broken ordering on
LANGUAGE
pragma insert
- Insert imports after all
LANGUAGE
pragmas - Show only exactly matched suggestion in
Add import
(previouslyrunErrorT
's module would be included forrunE
variable)
- Add missing
import
statement - Add missing
LANGUAGE
pragma