mirror of https://github.com/AMT-Cheif/drift.git
Scaffold the package layout of a future analyzer plugin
This commit is contained in:
parent
a550a49705
commit
5ddcd17c21
|
@ -31,7 +31,8 @@ updates that span multiple versions, we should follow these steps
|
|||
2. Make sure each package has the correct dependencies: `moor_flutter` version `1.x` should depend
|
||||
on moor `1.x` as well to ensure users will always `pub get` moor packages that are compatible
|
||||
with each other.
|
||||
3. Comment out the `dependency_overrides` section
|
||||
3. Comment out the `dependency_overrides` section in `moor`, `moor/tool/analyzer_plugin`, `moor_flutter`,
|
||||
`moor_generator` and `sqlparser`.
|
||||
4. Publish packages in this order to avoid scoring penalties caused by versions not existing:
|
||||
1. `moor`
|
||||
2. `moor_generator`
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
import 'dart:isolate';
|
||||
|
||||
import 'package:moor_generator/plugin.dart';
|
||||
|
||||
void main(List<String> args, SendPort sendPort) {
|
||||
start(args, sendPort);
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
name: analyzer_load_moor_plugin
|
||||
version: 1.0.0
|
||||
description: This pubspec is a part of moor and determines the version of the moor analyzer to load
|
||||
|
||||
dependencies:
|
||||
moor_generator: ^1.6.0
|
||||
|
||||
dependency_overrides:
|
||||
moor_generator:
|
||||
path: ../../../moor_generator
|
|
@ -0,0 +1 @@
|
|||
export 'src/plugin/starter.dart';
|
|
@ -0,0 +1,40 @@
|
|||
// ignore_for_file: implementation_imports
|
||||
import 'package:analyzer/src/dart/analysis/driver.dart';
|
||||
|
||||
class MoorDriver implements AnalysisDriverGeneric {
|
||||
final _addedFiles = <String>{};
|
||||
|
||||
bool _ownsFile(String path) => path.endsWith('.moor');
|
||||
|
||||
@override
|
||||
void addFile(String path) {
|
||||
if (_ownsFile(path)) {
|
||||
_addedFiles.add(path);
|
||||
handleFileChanged(path);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
|
||||
void handleFileChanged(String path) {
|
||||
if (_ownsFile(path)) {}
|
||||
}
|
||||
|
||||
@override
|
||||
bool get hasFilesToAnalyze => null;
|
||||
|
||||
@override
|
||||
Future<void> performWork() {
|
||||
// TODO: implement performWork
|
||||
return null;
|
||||
}
|
||||
|
||||
@override
|
||||
set priorityFiles(List<String> priorityPaths) {
|
||||
// We don't support this ATM
|
||||
}
|
||||
|
||||
@override
|
||||
AnalysisDriverPriority get workPriority => AnalysisDriverPriority.general;
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
import 'package:analyzer/file_system/file_system.dart';
|
||||
// ignore: implementation_imports
|
||||
import 'package:analyzer/src/dart/analysis/driver.dart';
|
||||
import 'package:analyzer_plugin/plugin/plugin.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
|
||||
class MoorPlugin extends ServerPlugin {
|
||||
MoorPlugin(ResourceProvider provider) : super(provider);
|
||||
|
||||
@override
|
||||
final List<String> fileGlobsToAnalyze = const ['**/*.moor'];
|
||||
@override
|
||||
final String name = 'Moor plugin';
|
||||
@override
|
||||
final String version = '0.0.1';
|
||||
@override
|
||||
final String contactInfo =
|
||||
'Create an issue at https://github.com/simolus3/moor/';
|
||||
|
||||
@override
|
||||
AnalysisDriverGeneric createAnalysisDriver(ContextRoot contextRoot) {
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
import 'dart:isolate';
|
||||
|
||||
import 'package:analyzer/file_system/physical_file_system.dart';
|
||||
import 'package:analyzer_plugin/starter.dart';
|
||||
import 'package:moor_generator/src/plugin/plugin.dart';
|
||||
|
||||
void start(List<String> args, SendPort sendPort) {
|
||||
ServerPluginStarter(MoorPlugin(PhysicalResourceProvider.INSTANCE))
|
||||
.start(sendPort);
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
/// Keeps track of files that need to be analyzed by the moor generator.
|
||||
class FileTracker {}
|
||||
|
||||
/// A `.moor` file added to the plugin.
|
||||
class _TrackedFile {}
|
|
@ -13,6 +13,7 @@ environment:
|
|||
|
||||
dependencies:
|
||||
analyzer: '>=0.36.0 <0.38.0'
|
||||
analyzer_plugin:
|
||||
recase: ^2.0.1
|
||||
built_value: '>=6.3.0 <7.0.0'
|
||||
source_gen: ^0.9.4
|
||||
|
|
Loading…
Reference in New Issue