Commit Graph

122 Commits

Author SHA1 Message Date
paulberry@google.com 940f84df33 Remove dead code for tracking pubspec.yaml files.
Now that we are using "pub list-package-dirs" to find the packages
associated with a context, we no longer need to explicitly track the
presence or absence of a "pubspec.yaml" file within the context.

Note that we will have to watch the "pubspec.lock" file in order to
decide when to re-run "pub list-package-dirs", but we'll do this using
a different mechanism, since the decision of which file(s) to watch is
the responsibility of pub, and communicated to us through the JSON
output of "pub list-package-dirs".  This will be addressed in a future
CL.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//353453004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37620 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 21:33:18 +00:00
scheglov@google.com c6bba5ff20 A FileManager implementation to keep each index file in a separate file system file.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//346273005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37615 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 20:00:38 +00:00
scheglov@google.com b5d098a4a2 Move split_store.dart to the store/ folder and extract collections/codecs.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//351453004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37610 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 17:18:14 +00:00
paulberry@google.com 87ce2785b6 Allow "null" as a synonym for [] or {} in the analysis server API.
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//342383002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37608 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 16:51:59 +00:00
danrubel@google.com 0e5687a619 close channel and exit analysis server on editor shutdown
BUG=
R=scheglov@google.com

Review URL: https://codereview.chromium.org//349573004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37597 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 12:49:24 +00:00
paulberry@google.com 4531158428 Allow multiple dirs per package in the data returned by "pub list".
R=scheglov@google.com

Review URL: https://codereview.chromium.org//341273007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37565 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 20:12:42 +00:00
scheglov@google.com 5f8931c039 Use single quotes for index store.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//347153002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37564 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 18:20:53 +00:00
scheglov@google.com 8b273420e3 Explicitly remove AnalysisContext from ContextCodec.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//347133002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37563 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 18:18:12 +00:00
scheglov@google.com bd4cb891ef Port SplitIndexStore to Dart.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//348773003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37556 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 16:18:19 +00:00
paulberry@google.com e9fa53425c Use "pub list-package-dirs" to resolve package URIs in analysis server.
R=scheglov@google.com

Review URL: https://codereview.chromium.org//341893010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37552 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 14:42:01 +00:00
scheglov@google.com 6b6467a9ca New analyzer snapshot.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//348673002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37516 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-19 20:58:28 +00:00
paulberry@google.com 1eacc4f343 Add support for adding/removing pubspec.yaml files.
Since this probably won't happen very often, we don't go to a great
deal of effort to handle it efficiently--we just destroy the old
context and create a new one.

R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//340773005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37496 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-19 14:55:27 +00:00
brianwilkerson@google.com 3ada3b02d7 Implement analysis.updateOptions
R=paulberry@google.com

Review URL: https://codereview.chromium.org//335123008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37467 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 21:27:51 +00:00
scheglov@google.com 4b67b3a4c6 'Element' and 'Outline' implementations for the new server API.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//340183003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37463 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 20:44:24 +00:00
scheglov@google.com e24abbc13f Fix for subscribing for notifications after analysis.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//339933006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37455 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 17:38:34 +00:00
scheglov@google.com bf65a5694e Extract 'DartUnitHighlightsComputer' tests into a separate file.
Use constants.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//338683003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37452 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 16:34:08 +00:00
scheglov@google.com 8df494e4b4 PackageMapUriResolver for Dart server.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//337383005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37431 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 22:52:22 +00:00
paulberry@google.com 86d2b07b6b Change contract for ChangeSet to reflect AnalysisContext behavior.
The analysis server relies on changedSources having no effect on files
whose contents are already overridden, and we don't want to rely on
undefined behavior.

This shouldn't affect any clients; we are just specifying the behavior
that already existed.

Also, avoid unnecessarily invalidating analysis when changedSources
contains a source that is already overridden.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//341533005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37426 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 21:22:20 +00:00
brianwilkerson@google.com 4ad29a2671 Implemented analysis.setPrioritySource
R=paulberry@google.com

Review URL: https://codereview.chromium.org//332993006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37412 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 18:44:23 +00:00
paulberry@google.com 3ab000840c Trigger re-analysis when a file changes on disk.
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//332383006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37408 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 18:07:57 +00:00
brianwilkerson@google.com 58ee598e04 Adjust server for API changes
R=scheglov@google.com

Review URL: https://codereview.chromium.org//337943002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37368 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 18:41:04 +00:00
paulberry@google.com b77f98fdbe Handle null content in ContentChange.
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//335853003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37328 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 20:23:23 +00:00
scheglov@google.com 96d0229ed7 Backport B+ tree implementation from Dart to Java.
Only in-memory implementation for in this CL.

Helper classes don't have separate tests yet.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//338503002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37316 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 15:33:26 +00:00
scheglov@google.com e3df29d333 Fix caching paging during read.
Preliminary performance numbers: about 2000 ms to insert 1 million key/value pairs.
Page size is 8K, cache is 16 index nodes and 128 leaf nodes.
Key is Uint32List(7) = 28 bytes and value is Uint32.
I.e. it is basically ElementId to an artificial incremental id.

Keys are sequencial, with randomization every 100 keys - add a random number from the range [-5000, 5000).
I hope that it is a good simulation for our Element keys - they tend to group by libraries and parts.
So, our cache should be able to keep corresponding index/leaf nodes in memory.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//331603002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37274 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 14:25:08 +00:00
scheglov@google.com 4d60770a6f Tweaks for review comments.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//327003004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37198 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-10 20:37:16 +00:00
scheglov@google.com c83879cb66 Some clean ups for caching tests.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//329633002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37194 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-10 19:08:10 +00:00
scheglov@google.com c2f9e90500 Node cache, binary search.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//326123002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37188 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-10 17:24:17 +00:00
scheglov@google.com f4a0a16911 FilePageManager - disk based PageManager.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//321953002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37158 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-10 05:51:48 +00:00
scheglov@google.com 06c7850c5e A NodeManager implementation with encoding/decoding keys/values into pages.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//324743003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37136 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-09 21:13:03 +00:00
scheglov@google.com ca89ae121e Create/read/write/delete nodes using NodeManager.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//324623002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37116 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-08 17:07:46 +00:00
scheglov@google.com 1419a83dac Rename to BPlusTree.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//320723002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37115 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-08 16:19:17 +00:00
scheglov@google.com ecef37ed13 A simple B+Tree implementation.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//314413004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37113 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-07 21:36:27 +00:00
brianwilkerson@google.com 7e00cff46a Replace Map with HashMap.
I didn't bother with obviously short-lived objects, like those generated in order to produce JSON strings, or with anything in tests, but tried to catch everything else.

R=scheglov@google.com

Review URL: https://codereview.chromium.org//325433003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37094 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 19:32:03 +00:00
brianwilkerson@google.com d871724d03 Remove unused analysis contexts
R=scheglov@google.com

Review URL: https://codereview.chromium.org//315183004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37081 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 15:27:32 +00:00
scheglov@google.com ae59c7e055 Clean ups for warnings and unused code.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//314173003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37039 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-05 17:52:20 +00:00
scheglov@google.com c928073e3d Updates for the Outline API and use it in Editor.
R=brianwilkerson@google.com, jwren@google.com
BUG=

Review URL: https://codereview.chromium.org//311053005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37033 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-05 17:01:07 +00:00
scheglov@google.com 1af57c302e Outline notification implementation in server.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//319523004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37025 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-05 01:38:02 +00:00
scheglov@google.com 94404cc0a4 Split computers.dart and use parsed JSON objects for navigation tests.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//315053005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37007 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 20:20:35 +00:00
scheglov@google.com 112890821b Fix for implicit constructor invocation navigation regions.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//313753002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36994 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 14:16:29 +00:00
scheglov@google.com 80d8779110 Navigation computer and two variants of tests for it.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//314493002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36958 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-03 23:14:47 +00:00
scheglov@google.com 61dfa442c9 Extract analysis/notifications into a separate operation/file.
It seems that while we really have to expose some additional API from AnalysisServer,
it still worth to extract analysis and its notifications into a separate file.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//311653002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36899 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-02 21:00:49 +00:00
paulberry@google.com b703deb077 Add a boolean which causes AnalysisServer to rethrow exceptions.
The boolean defaults to true to ensure that any unhandled analysis
exceptions which occur during unit tests are reported as unit test
failures.  When the full analysis server is run normally it is set to false
so that exceptions are simply logged.

R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//302323002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36895 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-02 19:57:41 +00:00
scheglov@google.com 304243bc5b Add ServerOperation and queue.
Schedule operations to perform analysis.
Moving notifications into operations to be done in the next CL.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//308003009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36890 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-02 18:31:49 +00:00
brianwilkerson@google.com ae5597140c First cut at server timing tests
R=jwren@google.com, paulberry@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//303233007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36874 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-02 14:39:33 +00:00
scheglov@google.com a95856f5be Use 'analysis.setSubscriptions' HIGHLIGHTS in Editor.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//304273007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36853 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-31 01:53:28 +00:00
scheglov@google.com fe26a39b8d Initial implementation for 'analysis.setSubscriptions' API.
Not quite all, and not as operations yet.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//308923003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36834 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 21:02:28 +00:00
paulberry@google.com 386fcb77c9 Don't add files inside "packages" subdir to context.
In the short term this will allow us to make fair comparisons between
the Java-based and Dart-based analysis engines.  In the long run we'll
be adding these files to the context using a separate mechanism (by
finding them via "pub list-package-dirs").

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//303413003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36832 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 19:38:20 +00:00
scheglov@google.com 24c8f1f4b2 Extract constants into separate libarary.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//308703005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36828 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 18:37:44 +00:00
scheglov@google.com 2ee78ad191 Implementation of 'notification.highlight' API.
Still no subscriptions yet, so we generate highlight regions for all non-SDK files.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//307963006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36822 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 17:22:05 +00:00
scheglov@google.com 125d09e37d Computers and services snapshot.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//304323004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36808 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-29 22:19:21 +00:00