• Stars
    star
    112
  • Rank 312,240 (Top 7 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An extension for the VS Code editor that provides Intellisense capabilities to your Aurelia project.

Aurelia

License: MIT CircleCI TypeScript VS Code Marketplace Downloads VS Code Marketplace Installs

Aurelia VSCode Extension

Quick links: --- Troubleshooting --- Setup --- Configuration ---

Provide Intellisense capabilities to your Aurelia project (through the LSP) by letting you access View Model variables in your Views, rename them across your components, and many other features. For a complete list, check out the Features. The extension works out of the box on Linux/Mac/Windows, but still allows you to customize it to your projects needs.

⚠️ Unstable warning

(Defintions: Show all places where <custom-element> component is used) defintions

Table of contents

Setup

  • Works out of the box, with zero configs, for any CLI generated project.
CLI
  + --- root/
  |     + --- src/              // Default place where the Extension tries to search
  |                                  for Aurelia files
  |     + --- tsconfig.json     // (Optional) Powers all the language features
  |                                  (through a Typescript Program)
  |     + --- jsconfig.json     // Same as `tsconfig.json`
  |     + --- package.json      // Determine, if given project is an Aurelia project
        
Monorepo
  + --- root/
  |    + --- aurelia/
  |        + --- src/             // Default place where the Extension tries to search
  |                                    for Aurelia files
  |        + --- tsconfig.json    // (Optional) Powers all the language features
  |                                    (through a Typescript Program)
  |        + --- package.json     // Determine, if given project is an Aurelia project
  |    + --- burelia/
  |        + (same as aurelia/)   // Behaves the same as `aurelia/`
  |    + --- non-aurelia/         // Will not get picked up
  |        + ...
        
Complex
  + --- root/
  |    + --- frontend/
  |        + --- aurelia/
  |            + --- src/             // Default place where the Extension tries to search
  |                                        for Aurelia files
  |            + --- tsconfig.json    // (Optional) Powers all the language features
  |                                        (through a Typescript Program)
  |            + --- package.json     // Determine, if given project is an Aurelia project
  |    + --- backend/
  |    + --- service/
        

Typescript

  • Cli generate project works out of the box (npx makes au)
  • If you have a mixed JS and TS project, please add allowJS: true to your tsconfig.json

Javascript

  • Cli generate project works out of the box (au new)
  • Less stable than Typescript, but should work still work most of the time.
    • Tested with au new project, and legacy monorepo setup, with 131 components

Configuration

Complex
  + --- root/
  |    + --- frontend/                // aureliaProject.rootDirectory =
  |                                         absolute/path/root/frontend
  |        + --- aurelia/
  |            + --- deeper-path/
  |                + --- src/         // aureliaProject.pathToAureliaFiles =
  |                                         absolute/path/root/.../deeper-path/src
  |            + --- tsconfig.json    // aureliaProject.pathToTsConfig =
  |                                         absolute/path/root/.../aurelia/tsconfig.json
  |        + --- package.json         // aureliaProject.packageJsonInclude =
  |                                         absolute/path/root/.../frontend/package.json
  |    + --- backend/
  |    + --- service/
        

Features

You can find a more detailed list of features here. Furthermore, our tests are in a readable format and can provide much deeper insights into the extension behavior. You are encouraged to check those out:

Preview test format (expand) The format, that is used is named [Gherkin](https://cucumber.io/docs/gherkin/)
```feature
  Feature: Completions - Methods.
    Background:
      Given the project is named "cli-generated"
      And I open VSCode with the following file "view-model-test.html"

    Scenario Outline: Empty brackets.
      Given I'm replacing the file content with <CODE>
      And I'm on the line <LINE> at character <CODE>
      When I trigger Suggestions with ''
      Then I should get the correct method <METHOD_NAME> with brackets

      Examples:
        | LINE | CODE                        | METHOD_NAME      |
        | 0    | `<div if.bind="f\|"></div>` | functionVariable |
```

Features table

(Legend below)

Feature/Region A/AI/TI BA BB CA CE HTML I/R RF Signal VC
Code Action βž– βž– βž– βž– βž– βž• βž– βž– βž– βž–
Completion βž• βž• βž– βž– βž• βž• βž• βž• βž– βž•
Definition βž• βž• βž– βž– βž• βž• βž• βž•* βž– βž•
Diagnostics βž– βž– βž– βž– βž– βž• βž– βž– βž– βž–
Hover βž– βž– βž– βž– βž– βž• βž– βž– βž– βž–
Rename βž• βž• βž– βž– βž• βž• βž– βž•* βž– βž–
(Document) Symbol βž• βž• βž– βž– βž• βž• βž• βž• βž– βž•
(Workspace) Symbol βž• βž• βž– βž– βž• βž• βž• βž• βž– βž•

Missing: Router, Promise, <let>

Legend

βž• : Supported βž•* : Partially (or unsable) supported βž– : Not supported

A: Attribute CA: CustomAttribute RF: RepeatFor
AI: AttributeInterpolation CE: CustomElement TI: TextInterpolation
BA: BindableAttribute HTML: HTML VC: ValueConverter
BB: BindingBehavior I/R: Import/Require

Behavior

  • Startup
    • Check if given project is Aurelia project
    • Go through all .js/.ts files, and check whether those are Aurelia components
    • Assemble information to provide features.
  • Non-aurelia projects
    • Don't scan non-aurelia projects
    • Don't activate when you only have non-aurelia project files open
      • Will activate as soon, as you open aurelia-related file, else Troubleshooting
  • Aurelia components

Installation

vsix

You can manually install the extension by downloading the .vsix file in the top right section under "Release". Once you downloaded it, install via

code --install-extension aurelia-2.x.y.vsix

Troubleshooting

Self diagnostics

  1. Logs
    1. Open the Output panel of VSCode ("Output: Focus on Output View")
    2. Select "Aurelia"
  2. Reloading
    • "Aurelia: Reload Extension"
    • Should behave the same as a full VSCode reload/restart
  3. If nothing from above helps, submit an issue, and we kindly ask you to follow the steps in the issue template.

General issues

  • Completions

    • I don't get any completions (or other any feature).
      • There are cases where completions will not trigger. For a more detailed explanation visit the Completions docs
    • I get undesired completions
      • Unfortunately a known issue. Regardless, please open an issue to help improve the developer experience.
    • Sometimes completitions don't appear
      • Unfortunately a known issue. There are 2 sides
        1. Javascript/Typescript completions: We depend on a Typescript Program, to enable rich completions for your Views. This could be still an issue on our side, but chances are, that if some completions work, and others don't, that there is no way to improve this (to our current knowledge).
        2. Aurelia related completions. Likely a bug on our side.
  • Extension not working as expected

    • The extension does not pick up my project
    • The extension causes my project to be slow
      • We tried reduce response time as much as possible. If the extension still causes too much slowness, you can turn off individual features in the settings under aurelia.capabilities. Else please open an issue
    • The extension does not work on Windows/Mac/Linux
      • Windows: The extension was mainly developed on a Linux and a Mac machine. We tried to test on Windows as well, but are less confident on the stability. It would be great if you can help us improve the experience on Windows by opening an issue

Unstable warning

Please note, that due to the low iteration count, all features may not be as stable as we like them to be. Before submitting and issue, check out the General issues, Troubleshooting and [FAQ] section. If you still haven't found a solution to your problem, you are more than welcome to open an issue. The extension is in active use by the authors, so you can expect a swift response, but do note, that an actual fix cannot be guaranteed. Regardless, we are thankful, that you took the time to troubleshoot with us!

Releasing

# l.
bumb version in package.json
"version": "2.3.5"
npm i && npm run changelog
commit: chore(release): release v2.3.5

# 2.
git tag -a 2.3.5 -m "v2.3.5"
git push --follow-tags

Deleting tag when release failed

git tag -d 2.3.5
git push --delete origin 2.3.5

Prerelease

Use odd minor versions

"Real" Release

Use even minor versions

Acknowledgment

More Repositories

1

framework

The Aurelia 1 framework entry point, bringing together all the required sub-modules of Aurelia.
TypeScript
11,748
star
2

aurelia

Aurelia 2, a standards-based, front-end framework designed for high-performing, ambitious applications.
TypeScript
1,388
star
3

skeleton-navigation

Starter kits for building a standard navigation-style app with Aurelia.
JavaScript
733
star
4

cli

The Aurelia 1 command line tool. Use the CLI to create projects, scaffold components, and bundle your app for release.
JavaScript
407
star
5

ux

A user experience framework with higher-level capabilities, designed to bring simplicity and elegance to building cross-device, rich experiences.
TypeScript
367
star
6

dependency-injection

A lightweight, extensible dependency injection container for JavaScript.
TypeScript
157
star
7

validation

A validation plugin for Aurelia.
TypeScript
132
star
8

router

A powerful client-side router.
TypeScript
121
star
9

templating

An extensible HTML templating engine supporting databinding, custom elements, attached behaviors and more.
TypeScript
116
star
10

binding

A modern databinding library for JavaScript and HTML.
JavaScript
111
star
11

app-contacts

A sample app that lets you browse and edit contacts.
JavaScript
110
star
12

script

The home for Aurelia's concatenated script-tag-ready build.
JavaScript
109
star
13

dialog

A dialog plugin for Aurelia.
TypeScript
107
star
14

documentation

The documentation for Aurelia.
105
star
15

store

Aurelia single state store based on RxJS
TypeScript
103
star
16

app-ux-showcase

An application that showcases the various features of Aurelia UX.
HTML
98
star
17

i18n

A plugin that provides i18n support.
TypeScript
93
star
18

webpack-plugin

A plugin for webpack that enables bundling Aurelia applications.
TypeScript
90
star
19

ui-virtualization

A plugin that provides a virtualized repeater and other virtualization services.
TypeScript
90
star
20

fetch-client

An HTTP Client based on the Fetch standard.
TypeScript
76
star
21

bootstrapper

Sets up the default configuration for the aurelia framework and gets you up and running quick and easy.
JavaScript
75
star
22

http-client

A simple, restful, message-based wrapper around XMLHttpRequest.
JavaScript
62
star
23

templating-resources

A standard set of behaviors, converters and other resources for use with the Aurelia templating library.
TypeScript
59
star
24

event-aggregator

A lightweight pub/sub messaging system for app-wide or per-object loosely coupled events.
JavaScript
57
star
25

template-lint

Sanity check of Aurelia-flavor template HTML
TypeScript
56
star
26

skeleton-plugin

A starter kit for building an Aurelia plugin.
JavaScript
55
star
27

animator-css

An implementation of the abstract Animator interface from templating which enables css-based animations.
JavaScript
45
star
28

web-components

A plugin capable of transforming Aurelia components into standards-compliant Web Components.
TypeScript
41
star
29

registry

A registry of Aurelia plugins, cli plugins, gists and other awesome goodies you can use with Aurelia and its tools.
40
star
30

testing

Simplifies the testing of UI components by providing an elegant, fluent interface for arranging test setups along with a number of runtime debug/test helpers.
TypeScript
40
star
31

new

The Aurelia 2 scaffolding repo used by our tools to setup new projects.
JavaScript
38
star
32

tools

Tools and utility functions used to build and develop Aurelia's libraries.
JavaScript
37
star
33

bundler

A library for bundling JavaScript, HTML and CSS for use with SystemJS.
TypeScript
37
star
34

task-queue

A simple task queue for the browser that enables the queuing of both standard tasks and micro tasks.
JavaScript
36
star
35

inspector

The Aurelia 1 Chrome plugin which provides Aurelia-specific information about elements selected in the inspector.
HTML
35
star
36

dotnet

Official .NET tooling for Aurelia.
C#
33
star
37

templating-binding

An implementation of the templating engine's Binding Language abstraction which uses a pluggable command syntax.
TypeScript
32
star
38

metadata

Utilities for reading and writing the metadata of JavaScript functions.
TypeScript
28
star
39

route-recognizer

A lightweight JavaScript library that matches paths against registered routes. It includes support for dynamic and star segments and nested handlers.
JavaScript
27
star
40

templating-router

An implementation of the RouteLoader interface for use with the router module. Also contains a custom element that allows the templating engine to display the current route.
TypeScript
26
star
41

loader-webpack

An implementation of Aurelia's loader interface to enable webpack.
TypeScript
26
star
42

loader

An abstract module which specifies an interface for loading modules and view templates.
JavaScript
26
star
43

polyfills

The minimal set of polyfills needed to run Aurelia.
JavaScript
26
star
44

hot-module-reload

Core functionality for Aurelia's hot-module-reolad (HMR) capabilities, which is shared by all loaders and tools.
TypeScript
25
star
45

logging

A minimal but effective logging mechanism with support for log levels and pluggable log appenders.
JavaScript
24
star
46

history-browser

An implementation of the history interface based on standard browser hash change and push state mechanisms.
TypeScript
23
star
47

skeleton-server-render

A skeleton for setting up Aurelia for server-rendering.
22
star
48

validatejs

Enables expressive validation using decorators and/or a fluent API.
JavaScript
22
star
49

pal-nodejs

The NodeJS-based implementation of Aurelia's platform abstraction layer.
TypeScript
22
star
50

animator-velocity

An implementation of the abstract Animator interface from templating which enables velocity-based animations.
JavaScript
22
star
51

path

Utilities for path manipulation.
TypeScript
21
star
52

history

An abstract module which specifies the interface for history implementations used by a router.
JavaScript
21
star
53

pal

Aurelia's Platform Abstraction Layer
JavaScript
19
star
54

loader-default

A default implementation of the loader interface compatible with system.js and require-based loaders.
JavaScript
19
star
55

pal-browser

The browser-based implementation of Aurelia's platform abstraction layer.
JavaScript
18
star
56

benchmarks

Performance benchmarks for Aurelia.
JavaScript
17
star
57

logging-console

A console log appender for the Aurelia logging library.
JavaScript
17
star
58

aurelia2-examples

A collection of Aurelia 2 example applications showcasing how to build Aurelia 2 applications and other tasks.
TypeScript
17
star
59

ssr-engine

The server-side rendering engine for Aurelia.
JavaScript
16
star
60

site-generator

The static site generator for http://aurelia.io.
HTML
15
star
61

html-import-template-loader

Use HTMLImport technology to load views.
JavaScript
12
star
62

html-template-element

A polyfill for the HTMLTemplate element extracted and decoupled from Polymer.
JavaScript
12
star
63

typings

A place to store TypeScript Definition Files which Aurelia developers may need, but which aren't available elsewhere.
11
star
64

loader-nodejs

An implementation of the abstract Loader interface for NodeJS
TypeScript
10
star
65

v1

The Aurelia 1 scaffolding repo used by our tools to setup new projects.
JavaScript
9
star
66

pal-worker

The web-worker-based implementation of Aurelia's platform abstraction layer.
JavaScript
8
star
67

bootstrapper-webpack

A custom bootstrapper for using Webpack with Aurelia
JavaScript
8
star
68

protractor-plugin

An Aurelia protractor plugin.
JavaScript
6
star
69

http-client-mock

Provides a mock implementation of Aurelia's http-client for use in testing.
JavaScript
4
star
70

tools-ts

The shared set of tools that are used for TypeScript library builds.
4
star
71

ssr-bootstrapper-webpack

JavaScript
4
star
72

loader-esm

An ESNext spec-compliant loader plugin for Aurelia.
TypeScript
3
star
73

docker

Dockerfile
3
star
74

middleware-koa

Koa middleware for Aurelia SSR
JavaScript
2
star
75

circleci

CircleCI configurations and utilities used by Aurelia repositories
2
star
76

e2e-tests

A set of e2e tests used by Aurelia's CI
TypeScript
2
star
77

v1-documentation

Aurelia v1 documentation
1
star
78

aurelia.github.io

The web site for Aurelia.
HTML
1
star
79

routing-application

A simple application showcasing how easy it is to configure Aurelia 2 applications with routes.
JavaScript
1
star