-
Notifications
You must be signed in to change notification settings - Fork 29.8k
[DEV] Programming advice and tips & tricks
Johannes Rieken edited this page Oct 12, 2022
·
7 revisions
This page is a collection of FYI- and TIL-items that spotlights particular useful utilities or programming patterns that aren't obvious or little known. Take them as an offering and not as some must-do.
TODO@Matt
- native
Map
andSet
are sorted by insertion order 💡 this is a little-know but can come handy -
ResourceMap
andResourceSet
which are normal maps/sets but keyed byURI
(src/vs/base/common/map.ts
) -
LRUCache
is a map with recency and trimming abilities (src/vs/base/common/map.ts
) - [
TernarySearchTree](https://github.com/microsoft/vscode/blob/8c946e23f45f39fdd982cff1e1fce02a8e3dc719/src/vs/base/common/map.ts#L333) is map-like with the ability to lookup sub and super-strings (useful for path containment) (
src/vs/base/common/map.ts`) -
SkipList
is a map which is sorted based on a custom comparator function (src/vs/base/common/skipList.ts
) -
LinkedList
like arrays but with faster removal/insertion (src/vs/base/common/linkedList.ts
)
The modules src/vs/base/common/arrays.ts
and src/vs/base/common/strings.ts
have many very useful utilities when dealing with arrays or strings.
The src/vs/base/common/iterator.ts
modules contains utilities for working with iterables. Iterables can be a better alternative than arrays because they enforce readonly-ness by design and hence saving Array.slice
-calls
Project Management
- Roadmap
- Iteration Plans
- Development Process
- Issue Tracking
- Build Champion
- Release Process
- Running the Endgame
- Related Projects
Contributing
- How to Contribute
- Submitting Bugs and Suggestions
- Feedback Channels
- Source Code Organization
- Coding Guidelines
- Testing
- Dealing with Test Flakiness
- Contributor License Agreement
- Extension API Guidelines
- Accessibility Guidelines
Documentation