# Output directory of webdev build
build/

# Directory created by dartdoc
doc/api/

# Generated files not intended to be checked in to version control
.flutter-plugins-dependencies
test/widget_test.dart
.metadata

# Platforms related
android/**/*
ios/**/*
linux/**/*
windows/**/*

# This should only be present as a byproduct of running the publish
# script. It should not be committed.
fonts/codicon.ttf

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
