Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0.0 #1056

Open
wants to merge 316 commits into
base: master
Choose a base branch
from
Open

v1.0.0 #1056

wants to merge 316 commits into from

Conversation

TwitchBronBron
Copy link
Member

This is the official branch for the v1.0.0 release, tracking milesone v1.0.0.

TwitchBronBron and others added 30 commits September 20, 2023 16:13
* Fix scope related info messages, truncate the list

* Fix unit tests
* Fix scope related info messages, truncate the list

* Fix unit tests

* Add truncate method

* Tweak type compatibility diagnostic messages
Co-authored-by: Bronley Plumb <bronley@gmail.com>
* Fixes compatibility of built in types so typed array can be assigned to roArray

* Adding more intrinsic objects

* Do more type checking based on members

* Added in some TODOs about name checking interfaces
…essions (#927)

* Better completions on type expressions/casts and adds native components to semantic tokens

* Re-added deleted test
* Added Callfunc as ComponentType member

* Tightened up TypedFUnctionType compatibility code and added tests for .callFunc invocations

* fixed build issue

* Added callfunc as an override directly in scrape-roku-docs script

* fixed build errors

* Rescraped Roku docs
* Allows Scrape-rolku-docs to consolidate overloaded methods

* Fixes returnDescription and description mix up
* More flexible cache typing

* Better typing for cache `get`

* Refactor files to use `srcPath`.
Deprecate `pathAbsolute`

* WIP

* Add start of unit test fixes

* Fix broken scope diagnostics

* Fix most tests.

* Add support for `RawFile`

* Fix remaining broken test

* Fix lint issues

* Rename `RawFile` to `GenericFile`.
Rename `BscFile` to `File`

* Rename GenericFile to AssetFile

* Add before/after file add events.
Support overriding file contents during provide events.
Deprecate the file parse events.

* Allows diagnostics for AssetFiles

* add srcExtension to provideFile event

* Add basic example to plugin docs

* Add `excludeFromOutput` option to files.

* Rename destPath to pkgPath

* Implement file factory

* fix lint errors

* before/after file remove events.

* better plugin docs

* Deprecate the `BscFile` interface

* Introduce `destPath` (not using it fully yet)

* improve program.getPaths to support destPath

* Better file constructor handling.
Include destPath in `ProvideFileEvent`

* Use `destPath` instead of `pkgPath` most places

* Rename file reference to use `destPath`

* add file api documentation

* add multi-file change docs

* Refine file api docs

* Move bsc plugin to provide files in after

* Adds completed file build flow

* Add program build events

* Some fixes

* Fix remaining build errors.

* Convert testTranspile to async

* Convert unit tests to async testTranspile

* Fix transpile flows

* Fix lint issues

* Fix AssetFile content loading

* Fixed stagingDir path issues

* Fix binary file copying

* Re-expose concrete AstEditor

* Fix bugs in the bslib injector

* Properly prefix bslib

* Export some missing interfaces and classes

* Public `needsTranspiled` props

* Add import comment test

* Fix broken tests. Add event hook warnings to pluginInterface
* Keep a per-scope type cache

* Much Smarter Validation scheme - only file-level unresolved functions get revalidated for each scope

* remove logging

* Make sure extra data is passed back from a cache

* fixed lint error

* A few small fixes

* Fixed ifDraw2d.DrawScaledObject overload

* re-scraped docs

* More granularity for re-validations

* Removed testing and commented out code

* Minimize namespace link operations

* Fighting with typecache... I will revert it

* Fixed bugs.. reverted misguided scope-type-caching

* Reworked validation to only validate sections that have unresolved details

* Moved all Validation segmenting code to its own class

* Moved all scope validation to happen on walks

* re-added all the statement lookup maps to the namespace container

* Reworked Scope.diagnosticDetectShadowedLocalVars() to only do type lookups if necessary

* Adds a lot of logging around timing and validation

* Removed mistakenly cached brsFile.validationSegments

* Removed unused code paths and console logs
…bols` (#944)

* more unused code removed

* Namespace containers reference all statements

* BrsFile validation keeps track of provided and required symbols and chnages since last validation

* Lightning

* Keep track of where scope diagnostics come from, so they can be cleared on re-validation only

* WIP - resolving class requires

* Add the `create-package` script

* Lots of fixes

* Fix windows test

* skip the commit hooks when building the package

* build mac first to see if they fail there too.

* Tweaks for test

* don't run the preversion script for package building

* Fixed tests and removed some dead code

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
* Parser allows optional interface properties and adds them as optional members

* Added interface completion tests

* Added optional interface members docs

* Reworked optional members to use a keyword

* Fixed hovers for optional properties

* Fixed merge issue

* updated documentation

* Fixed code in completions test

* remove questionLeftParen in interface method dclaration

* ensure interface field name is an identifier

* Updated comment

* fix package builder

* Fix crash on missing node type

* Fixed issue with using a variable assigned from an unknown variable

* Allow enums to be named `optional.
Add several related tests.

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
* Removed multiple GetAllSymbols lookups from completion provider

* removed commented line of code

* Removed double for loop

* fixes build

* Fix script imports, dedupe same completions from differnt projects

* Does this fix windows path issue

* Fix broken test

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
#954)

* Restore original constructor param order for optional keyword

* Fix typedef transpile for optional iface field

* Use literal `)`
TwitchBronBron and others added 30 commits November 25, 2024 15:39
…1241)

* Took a stab at re-writing the docs

* Added human readable names to diagnostics

* Added file.destPath diagnostics filtering

* hopefully fixed test

* Is this change needed too?

* Changed BsDiagnostic so code is the human-readable version, legacyCode is the old code

* Fixed some issues

* Fix misspelling

* Update docs/bsconfig.md

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Update docs/bsconfig.md

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Updated docs to use new codes instead of legacy codes for diagnotsics

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Changes from comments on PR

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Combined diagnostics to make new expectedOperator diagnostic

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Combined expectedTerminator diags - Ill Be Back

* Consolidated expected statement diagnostics

* Removed xml prefix on xml diagnostics

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* use one expected-identifier diaganostic code

* A few more changes

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* Update src/DiagnosticMessages.ts

Co-authored-by: Bronley Plumb <bronley@gmail.com>

* A few more changes

* Rename many diagnostic codes

* Some small code tweaks

* Updated the expectedEndForOrNextToTerminateForLoop diagnostic

* Refactored memberAccessibilityMismatch diagnostic

* Reverted data.json change

* Combine `expectedIdentifierAfterKeyword` and `expectedIdentifier`

* Merge several `expected*AfterCallable` diagnostics into `expecteToken` or `expectedIdentifier`

* Rename functionNameCannotEndWithTypeDesignator to invalidIdentifier and update diagnostics for invalid characters in function names

* Rename mismatchedEndCallableKeyword to closingKeywordMismatch and update related diagnostic messages

* More diagnostics refactoring (unterminatedString, class inheritance, etc)

* Eliminate more diagnostic codes (such as localVarSameNameAsClass and expectedOpenParenToFollowCallfuncIdentifier)

* Refactor hash* diagnostics

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
)

* Changes expectedReturnStatement to allow coercable types

* fixed lint error

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
* Eliminates unnecessary import and fractional hex diagnostics

* Adds tests for fractional hex in different contexts

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
* Fixes default type for ArrayLIteral with enum member inner types

* Adds a new ReferenceType for Default/initial values
…1296)

* Refactored PrintStatment to only use expressions

* Introduce new `PrintSeparatorExpression`

* Fix some formatting

* More specific token type

* Just cleaning up some merge issues

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
* Augments handling of void returns

* Removed commented out code

* Built-in functions that are as void will return UninitializedType
* Makes assignments of invalid act be typed as dynamic

* Makes assignments of invalid act be typed as dynamic
* Binary operators on Unions work better now

* Used same logic on unary operators as well

* Updated test to check result type of complex binrary operation

* Binary and Unary operators handle ObjectType - issue #1387
* Fixed completion and hovers on callFUn invocations

* Callfunc return types are used for assignments

* Callfunc and @invocations return types are honored, as long as they are built in types

* Adds Callfunc invocation validation

* removed .onlys

* Adds component.createChild() typing

* fixed some comments

* Removed validation errors on generic roSgNode

* Perform validation on dependent types when ComponentType changes

* added one final test for for revalidation when callfunc type changes

* Re-validates references to a component when the callfunc signature changes

* Change some comments:

* removed commented out code

* removed commented out code

* Makes componentType checking with builtin components better

* Added changed symbols logging -- noticed there's way too many there

* Added cannotFindCallFuncFunction and many tests

* Found a crash and fixed it

* Ensures validation when the unresolved member of a resolved type changes

* Added coomments

* Better handling of completion and validation of nodes from component libraries

* Fixes callfunc on result of function call

* Revert change - there's a difference between built in symbols and built in types

* Fix build

* Fixed issue for callfuncs returning voidtype

* Adds count of changed symbols to the validation metrics

* Adds protection on not being able to decipher defining nodes for some symbols

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
… members (#1402)

* Fixes getting the default type of an array of AAs with reference type members

* Handle other weird array default type

* Just change the imports in a test
* Re-ran doc scrapper

* Added a few undocumented fields as doc merges

* TextEditBox fields are read_write
* Changes primitive type checking to allow boxed types

* Added more tests for validating boxed types

* Reverted some unneeded changes

* Adds isTypeLike reflection functions - refactored to use these mostly

---------

Co-authored-by: Bronley Plumb <bronley@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants