Giter Site home page Giter Site logo

serve-d's Introduction

serve-d

build status deploy nightly

Join the chat:

Join on Discord

Microsoft language server protocol implementation for D.

This program is the heart of code-d and implements most IDE features in D.

The purpose of this project is to give every editor the same capabilities and editing features as code-d through the widely available Microsoft Language Server Protocol (LSP).

Looking for your Editor? Check out the Usage section

Special Thanks

Corporate Sponsors

Development on code-d/serve-d tools is sponsored by

Weka.IO Logo
Weka.IO

If you are looking for a Job with D, check out the companies listed above!

For professional D consulting, programming services or corporate support with D IDE tools, DUB and the ecosystem, contact me through [email protected]

Individual Sponsors

Thanks to the following big GitHub sponsors financially supporting the code-d/serve-d tools:

ZyeByte's GitHub avatar
@zyebytevt

become a sponsor

Features

See code-d wiki

This implements most language features of the language server protocol for D and also a lot of support for other D related files such as vibe.d diet files and DlangUI DML files.

Usage

To use serve-d you will need an Editor (client) with support for the Language Server Protocol. Depending on the editor the initialization code might look different and will need to be adapted for each editor. This is relatively small though and can be done easily for all editors.

Officially Supported Editors

add LSP configurations using serve-d for other editors and PR them here!

Other Editor Guides

Project Layout

  • serve-d:http - Downloads a file over HTTP with progress using WinHTTP on Windows and the dub requests library on other platforms.
  • serve-d:lsp - LSP protocol types and RPC primitives
  • serve-d:serverbase - LSP server basics for quickly creating an LSP server for any language.
  • serve-d:dcd - DCD client using direct communication (without spawning dcd-client) for lower latency
  • serve-d:workspace-d - Implementation of core D functionality and source code processing using libdparse, dfmt, D-Scanner and DCD.
  • source/ - Maps LSP commands and state to serve-d:workspace-d functionality.

Command Line options

serve-d offers the following command line options to allow the LSP client to configure serve-d on startup:

Option Default Description
-r / --require [] (allows multiple, optional) List of options which this serve-d version needs to implement. serve-d will intentionally crash on startup if one of the given options is not supported by this version. Specifying or not specifying them will not change anything on runtime. Implemented features: d (PoC / unneeded), workspaces (multi-workspace support)
-p / --provide [] (allows multiple, optional) List of options to affect behavior of serve-d. Use this to indicate support for special editor features/extensions not covered by the LSP spec. Supported values: (see provides list below)
-v / --version n/a Prints the version to stdout and exists
--logfile n/a Overrides the logging output to log to a file instead of stderr for debug logs
--loglevel verbose for debug/nightly builds, otherwise info Changes the minimum log level when messages are logged. See serve-d --help for possible values
--lang en Changes the language of GUI messages to a supported translation
--wait false Waits for one second before starting (useful to be able to attach when debugging)

--provide values

The following provide values are supported by serve-d and will improve interop with the editor:

--provide http

When this provide flag is set, serve-d will send a request to the client when it wants to download a file (commonly DCD server files) using the coded/interactiveDownload request.

If this is not set, an internal download function is used which calls coded/logInstall on the client on every progress event.

--provide implement-snippets

If this is set, the served/implementMethods request will return TextEdits with snippet strings inside of them as defined by vscode.

Additionally the code action that would normally just insert a regular string will call the code-d.implementMethods command if this is set, which is expected to then call served/implementMethods, so that snippets are supported.

--provide context-snippets --provide default-snippets

If this is set, auto completion requests will also return built-in and custom defined snippets. Will register snippets for popular DUB dependencies that are built into serve-d.

NOTE: these flags will be enabled by default in serve-d v0.9.0 and become obsolete then.

Custom requests/notifications

serve-d defines a variety of custom requests and notifications for better editor integration. All requests starting with coded/ are sent from serve-d to the client and all requests starting with served/ are sent from client to serve-d at any time.

serve-d internally handles an active instance which is the instance where last a relevant command has been run. (such as auto complete) It will be used for some commands.

Request served/sortImports

Parameter: SortImportsParams

Returns: TextEdit[]

Command to sort all user imports in a block at a given position in given code. Returns a list of changes to apply. (Replaces the whole block currently if anything changed, otherwise empty)

interface SortImportsParams
{
	/** Text document to look in */
	textDocument: TextDocumentIdentifier;

	/** Location of cursor as standard offset, -1 for entire document */
	location: number;
}

Request served/implementMethods

Parameter: ImplementMethodsParams

Returns: TextEdit[]

Implements the interfaces or abstract classes of a specified class/interface. The given position must be on/inside the identifier of any subclass after the colon (:) in a class definition.

interface ImplementMethodsParams
{
	/** Text document to look in */
	textDocument: TextDocumentIdentifier;

	/** Location of cursor as standard offset */
	location: number;
}

Request served/restartServer

Parameter: none

Returns: true

Restarts all DCD servers started by this serve-d instance. Returns true once done.

Notification served/killServer

Parameter: none

Kills all DCD servers started by this serve-d instance.

Request served/addDependencySnippet

Parameter: AddDependencySnippetParams

Returns: boolean

Registers a snippet across the whole serve-d application which may be limited to given grammatical scopes.

Requires --provide context-snippets

Returns false if SnippetsComponent hasn't been loaded yet, otherwise true.

Notification served/updateDCD

Parameter: none

Manually triggers a DCD update either by compiling from source or downloading prebuilt binaries depending on the host system and serve-d. Excessively calls the coded/logInstall notification.

Request served/listConfigurations

Parameter: none

Returns: string[]

Returns an empty array if there is no active instance or if it doesn't have dub.

Otherwise returns the names of available configurations in dub.

Request served/switchConfig

Parameter: string

Returns: bool

Sets the current dub configuration for building and other tools. Returns true on success.

Request served/getConfig

Parameter: none

Returns: string

Returns the current dub configuration or null if there is no dub in the active instance.

Request served/listArchTypes

Parameter: ListArchTypesParams

Returns: string[] | ArchTypeInfo[]

Returns an empty array if there is no active instance or if it doesn't have dub.

Otherwise returns the names of available architectures in dub. (e.g. x86 or x86_64)

interface ListArchTypesParams
{
	/** If true, return ArchTypeInfo[] with meanings instead of string[] */
	withMeaning?: boolean;
}

interface ArchTypeInfo
{
	/** The value to use with a switchArchType call / the value DUB uses. */
	value: string;
	/** If not null, show this string in the UI rather than value. */
	label: string | null;
}

Request served/switchArchType

Parameter: string

Returns: bool

Sets the current architecture for building and other tools. Returns true on success.

Request served/getArchType

Parameter: none

Returns: string

Returns the current dub architecture or null if there is no dub in the active instance.

Request served/listBuildTypes

Parameter: none

Returns: string[]

Returns an empty array if there is no active instance or if it doesn't have dub.

Otherwise returns the names of available build types in dub.

Request served/switchBuildType

Parameter: string

Returns: bool

Sets the current dub build type for building and other tools. Returns true on success.

Request served/getBuildType

Parameter: none

Returns: string

Returns the current dub build type or null if there is no dub in the active instance.

Request served/getCompiler

Parameter: none

Returns: string

Returns the name of the current compiler.

Request served/switchCompiler

Parameter: string

Returns: bool

Sets the current compiler to use in dub for building and other tools. Returns true on success.

Request served/addImport

Parameter: AddImportParams

Returns: ImportModification

Parses the source code and returns code edits how to insert a given import into the code.

interface AddImportParams
{
	/** Text document to look in */
	textDocument: TextDocumentIdentifier;
	/** The name of the import to add */
	name: string;
	/** Location of cursor as standard offset */
	location: number;
	/** if `false`, the import will get added to the innermost block */
	insertOutermost?: boolean = true;
}

interface ImportModification
{
	/** Set if there was already an import which was renamed. (for example import io = std.stdio; would be "io") */
	rename: string;

	/** Array of replacements to add the import to the code */
	replacements: CodeReplacement[];
}

interface CodeReplacement
{
	/**
	 * Range what to replace. If both indices are the same its inserting.
	 *
	 * This value is specified as bytes offset from the UTF-8 source.
	 */
	size_t[2] range;

	/** Content to replace it with. Empty means remove. */
	string content;
}

Request served/updateImports

Parameter: UpdateImportsParams

Returns: boolean

Refreshes the dub dependencies from the local filesystem. Triggers a coded/updateDubTree notification on success and updates imports in DCD.

Returns true on success.

interface UpdateImportsParams
{
	/// set this to false to not emit progress updates for the UI
	reportProgress?: bool;
}

Request served/listDependencies

Parameter: string packageName

Returns: DubDependency[]

Lists the dependencies of a given dub package name. If no package name is given (empty string) then all dependencies of the current instance will be listed.

interface DubDependency
{
	/** The name of this package */
	name: string;
	/** The installed version of this dependency or null if it isn't downloaded/installed yet */
	version: string;
	/** Path to the directory in which the package resides or null if it's not stored in the local file system. */
	path: string;
	/** Description as given in dub package file */
	description: string;
	/** Homepage as given in dub package file */
	homepage: string;
	/** Authors as given in dub package file */
	authors: string[];
	/** Copyright as given in dub package file */
	copyright: string;
	/** License as given in dub package file */
	license: string;
	/** List of the names of subPackages as defined in the package */
	subPackages: string[];
	/** `true` if this dependency has other dependencies */
	hasDependencies: boolean;
	/** `true` if no package name was given and thus this dependency is a root dependency of the active project. */
	root: boolean;
}

Request served/buildTasks

Parameter: none

Returns: Task[]

Returns a list of build tasks for all dub instances in the project. Currently each with Build, Run, Rebuild and Test commands.

enum TaskGroup
{
	clean = "clean",
	build = "build",
	rebuild = "rebuild",
	test = "test"
}

interface Task
{
	/// the default JSON task
	definition: any;
	/// global | workspace | uri of workspace folder
	scope: string;
	/// command to execute
	exec: string[];
	/// name of the task
	name: string;
	/// true if this is a background task without shown console
	isBackground: boolean;
	/// Task source extension name
	source: string;
	/// clean | build | rebuild | test
	group: TaskGroup;
	/// problem matchers to use
	problemMatchers: string[];
}

Notification served/convertDubFormat

Params: DubConvertRequest

Starts a conversion of a dub.json/dub.sdl file to a given other format. Shows an error message in the UI if unsuccessful and triggers a workspace/applyEdit command when successful with the new content.

interface DubConvertRequest
{
	/** Text document to look in */
	textDocument: TextDocumentIdentifier;
	/** The format to convert the dub recipe to. (json, sdl) */
	newFormat: string;
}

Notification served/installDependency

Params: InstallRequest

Adds a dependency to the dub recipe file of the currently active instance (respecting indentation) and calls dub upgrade and updates imports afterwards.

Writes changes to the file system.

interface InstallRequest
{
	/** Name of the dub dependency */
	name: string;
	/** Version to install in the dub recipe file */
	version: string;
}

Notification served/updateDependency

Params: UpdateRequest

Changes a dependency in the dub recipe file of the currently active instance (respecting indentation) to the given version and calls dub upgrade and updates imports afterwards.

Does nothing if the dependency wasn't found in the dub recipe.

Writes changes to the file system.

interface UpdateRequest
{
	/** Name of the dub dependency */
	name: string;
	/** Version to install in the dub recipe file */
	version: string;
}

Notification served/uninstallDependency

Params: UninstallRequest

Removes a dependency from the dub recipe file of the currently active instance and calls dub upgrade and updates imports afterwards.

Writes changes to the file system.

interface UninstallRequest
{
	/** Name of the dub dependency */
	name: string;
}

Notification served/doDscanner

Params: DocumentLinkParams

Manually triggers DScanner linting on the given file. (respecting user configuration)

Request served/searchFile

Params: string query

Returns: string[]

Searches for a given filename (optionally also with subfolders) and returns all locations in the project and all dependencies including standard library where this file exists.

Request served/findFilesByModule

Params: string module

Returns: string[]

Lists all files with a given module name in the project and all dependencies and standard library.

Request served/getDscannerConfig

Params: DocumentLinkParams

Returns: DScannerIniSection[]

Returns the current D-Scanner configuration for a given URI.

/// An ini section of the dscanner.ini which is written in form [name]
interface DScannerIniSection
{
	/// A textual human readable description of the section
	description: string;
	/// The name of the section as written in the ini
	name: string;
	/// Features which are children of this section
	features: DScannerIniFeature[]
}

/// A single feature in a dscanner.ini which can be turned on/off
interface DScannerIniFeature
{
	/// A textual human readable description of the value
	description: string;
	/// The name of the value
	name: string;
	/// Enables/disables the feature or enables it with being disabled in unittests
	enabled: "disabled" | "enabled" | "skip-unittest"
}

Request served/getActiveDubConfig

Params: none

Returns dub information for the currently active project (dub project where last file was edited / opened / etc)

Returns: at least

{
    "packagePath": string,
    "packageName": string,
    "targetPath": string,
    "targetName": string,
    "workingDirectory": string,
    "mainSourceFile": string,

    "dflags": string[],
    "lflags": string[],
    "libs": string[],
    "linkerFiles": string[],
    "sourceFiles": string[],
    "copyFiles": string[],
    "versions": string[],
    "debugVersions": string[],
    "importPaths": string[],
    "stringImportPaths": string[],
    "importFiles": string[],
    "stringImportFiles": string[],
    "preGenerateCommands": string[],
    "postGenerateCommands": string[],
    "preBuildCommands": string[],
    "postBuildCommands": string[],
    "preRunCommands": string[],
    "postRunCommands": string[]
}

Request served/getProfileGCEntries

Params: none

Returns all profilegc.log entries parsed and combined.

Returns: ProfileGCEntry[]

interface ProfileGCEntry
{
	bytesAllocated: number;
	allocationCount: number;
	type: string; /// the function and/or type name
	uri: string; /// absolute, normalized uri
	displayFile: string; /// as parsed from file
	line: number; /// 1-based line number
}

Notification served/didConfigurationChange

Params: Exactly as for workspace/didConfigurationChange

This notification triggers the use of alternate configuration notifications. Once this is received, the server will ignore workspace/didConfigurationChange notifications. This mechanisms exists to support some client/plugin combinations where the plugin needs more direct control over the configuration.

Request served/getInfo

Params: ServedInfoParams

Returns all profilegc.log entries parsed and combined.

Returns: ServedInfoResponse

interface ServedInfoParams
{
	includeConfig?: boolean;
	includeIndex?: boolean;
	includeTasks?: boolean;
}

interface ServedInfoResponse
{
	/** Same as in the initialized response. (the LSP server info) */
	serverInfo: ServerInfo;

	/**
	 * Only included if `ServedInfoParams.includeConfig` is true.
	 *
	 * Contains the entire config object, e.g. `{"d":{...}, ...}`
	 */
	currentConfiguration?: Configuration;

	/**
	 * Only included if `ServedInfoParams.includeIndex` is true.
	 * Key: module, Value: modules that depend on the (key) module.
	 * This is only the module index for the active workspace.
	 */
	{ [module: string]: string[] }?: moduleIndex;

	/**
	 * Describes the global workspace, same type as in
	 * `coded/changedSelectedWorkspace`
	 */
	globalWorkspace: WorkspaceState;

	/** Describes all available workspaces. */
	workspaces: WorkspaceState[];

	/**
	 * First index inside the `workspaces` array sent along this value, where
	 * `selected` is set to true, or -1 for global workspace.
	 */
	selectedWorkspaceIndex: number;

	/**
	 * Only included if `ServedInfoParams.includeTasks` is true.
	 *
	 * List of currently running and recently done LSP requests and tasks
	 */
	runningTasks: {
		/** task name (in most cases function name or LSP request name) */
		name: string,
		/** Number of seconds before now (float) when the task was queued */
		queued: number,
		/** Number of seconds before now (float) when the task was first started */
		started: number,
		/** Number of seconds before now (float) when the task ended - 0 for running tasks */
		ended: number,
		/** true if currently ongoing (e.g. yielding) */
		running: boolean,
		/** Number of (re)entries */
		numSteps: number,
		/** Number of seconds that this fiber was running in total */
		timeSpent: number,
	}[]
}

Request served/forceLoadProjects

Params: string[]

Forces the load of projects, regardless of manyProjects limit or action configuration of the given file paths. Returns true if successful, false otherwise, for each item in the params array in order that was given in.

Returns: bool[]


Client notification coded/updateSetting

Params: UpdateSettingParams

Tells the client to update a user or workspace setting. This is done for updating the dcdClientPath and dcdServerPath on installation.

interface UpdateSettingParams
{
	/** The configuration section to update in (e.g. "d" or "dfmt") */
	section: string;
	/** The value to set the configuration value to */
	value: any;
	/** `true` if this is a configuration change across all instances and not just the active one */
	global: bool;
}

Client notification coded/logInstall

Params: string message

Instructs the client to log a message that has something to do with the installation routine of serve-d or dependencies.

Client notification coded/initDubTree

Params: none

Tells the client that dub has been loaded and the dependency tree can now be fetched.

Client notification coded/updateDubTree

Params: none

Tells the client that dub dependencies have been reloaded and should be redisplayed.

Client notification coded/changedSelectedWorkspace

Params: WorkspaceState

Tells the client when the active instance changed.

interface WorkspaceState
{
	/** URI to the workspace folder */
	uri: string;
	/** name of the workspace folder (or internal placeholder) */
	name: string;
	/** true if this instance has been initialized */
	initialized: boolean;
	/** true if this is the active instance */
	selected: boolean;
	/**
	 * May contain errors that are pending and will be shown once the user with
	 * this workspace.
	 *
	 * Key: URI folder or file in which startup issues occured. (compare with
	 * startsWith)
	 * Value: human readable message.
	 * */
	pendingErrors: { [folderUri: string]: string };
}

Client notification coded/skippedLoads

Params: InteractiveDownload

Tells the client that project loading was skipped for the given path(s). The client may then ask the user or query configuration if the paths should be loaded or skipped. When requesting to load projects, pass these roots as arguments to the reqeust served/forceLoadProjects.

Otherwise, project loading is blocking and asks the client using a message box for each lazy-loaded project. IDE functionality is otherwise limited while these message boxes are open.

This must be implemented if --provide async-ask-load is given in the command line, otherwise this is not called.

interface SkippedLoadsNotification
{
	/** List of folder file paths */
	roots: string[];
}

Client request coded/interactiveDownload

Params: InteractiveDownload

Returns: boolean

Instructs the client to download a file into a given output path using download UI.

This must be implemented if --provide http is given in the command line, otherwise this is not called.

interface InteractiveDownload
{
	/** The URL to download */
	url: string;

	/** The title to show in the UI popup for this download */
	title?: string;

	/** The file path to write the downloaded file to */
	output: string;
}

User Configuration

The server has support for configuration for these items.

Installation

If you use an existing extension (code-d) you will not need to do these steps

If you want to manually get the serve-d binaries or if you want to add installation support for your editor, check out the sections below. The extension code-d already does this automatically and there is no need to do it there.

Installing a pre-built binary:

Grab latest stable ore pre-release with binaries from GitHub releases

Grab latest nightly binaries from GitHub releases

Manually building from source:

dub build

Issues

If you have issues with any editors using serve-d, please report an issue

serve-d's People

Contributors

0xeab avatar aminya avatar burner avatar colinkiama avatar concept-hf avatar denisbelmondo avatar electricface avatar gdamore avatar gizmomogwai avatar joaquimesteves avatar jonathanballs avatar laurenttreguier avatar ljmf00 avatar macro187 avatar mai-lapyst avatar monkoose avatar rtbo avatar ryuukk avatar scellow avatar shigekikarita avatar tarkah avatar thepotatochronicler avatar tyckesak avatar unecloud avatar vushu avatar webfreak001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

serve-d's Issues

Crash when there is a diagnostic at end of file (code action)

Stacktrace:

2018-01-04T00:29:02.796:app.d:__lambda10:236 Failed processing request: core.exception.RangeError@source/served/extension.d(1052): Range violation
----------------
??:? _d_arrayboundsp [0xd3653946]
??:? served.protocol.Command[] served.extension.provideCodeActions(served.protocol.CodeActionParams) [0xd32df528]
??:? served.protocol.ResponseMessage app.processRequest(served.protocol.RequestMessage) [0xd3269ed5]
??:? void app.main(immutable(char)[][]).__lambda10() [0xd326c85b]
??:? void core.thread.Fiber.run() [0xd36a59ab]
??:? fiber_entryPoint [0xd36a5886]
??:? [0xffffffff]

seems to not always be fatal

Extension for Eclipse IDE

It would be nice to contribute support for this language server in the Eclipse IDE. This is not a too complex thing to implement, see https://www.eclipse.org/community/eclipse_newsletter/2017/may/article3.php for explanation.
DDT ( https://github.com/DDT-IDE ) used to be the best tool available in Eclipse IDE for D. But it's not maintained any more, and the editor part relies on a very specific framework; where I believe a TextMate grammar + a language server would work better for the editor part. So I think there is an opportunity here to start a new Eclispe IDE extension from the LS, and to adopt some interesting code of DDT.

I'd be glad to assist anyone willing to work on it; however, as I'm not much knowledgeable about D and my employer doesn't (yet?) have any strategical interest in it; it's not something I can do myself.

Command timeouts

Sometimes commands can start to hang for various reasons (invalid length, stuck in endless loop, child process hung up, etc)

There should be an attribute @timeout(Duration) which sets a timeout for the function. By default every function should have a timeout of 10 seconds.

When a function times out it wont be terminated, it will only send a timeout response (same as error) and if its synchronous it will be moved to another thread (for this they will start in the other thread already and the main thread will block until it times out or the response arrives).

If a timed out function actually returns afterwards it will send the response to message id 0x71 33 00 70 instead (timeout handler)

This will probably fix the occassional auto completion hang-ups on windows

Root package serve-d reference fluent-asserts ~>0.8.5 cannot be satisfied.

No idea what's going on. But After git cloning workspace-d (Which has the same dependency) and doing a dub build it goes alright. In the serve-d it somehow fails and I can't see why at all. Any ideas where I can even start looking? This is a partial dub build -v output. One line

Failed to load path based dependency memutils: No package file found in ../memutils/, expected one of dub.json/dub.sdl/package.json

seems particular fishy, a bit of searching leads to https://github.com/etcimon/botan/issues/35 but I'm not sure what to make of it.

Maybe you have some ideas?

Here's partial output of the rest of -v.

Using dub registry url 'https://code.dlang.org/'
Refreshing local packages (refresh existing: true)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /Users/aliak/.dub/packages/local-packages.json
Determined package version using GIT: serve-d ~master
Refreshing local packages (refresh existing: false)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /Users/aliak/.dub/packages/local-packages.json
  Version selection for dependency fluent-asserts (fluent-asserts) of serve-d is missing.
  Missing dependency fluent-asserts ~>0.8.5 of serve-d
  Version selection for dependency painlessjson (painlessjson) of serve-d is missing.
  Missing dependency painlessjson ~>1.3.8 of serve-d
  Version selection for dependency libddoc (libddoc) of serve-d is missing.
  Missing dependency libddoc ~>0.2.0 of serve-d
  Version selection for dependency workspace-d (workspace-d) of serve-d is missing.
  Missing dependency workspace-d ~master of serve-d
  Version selection for dependency eventsystem (eventsystem) of serve-d is missing.
  Missing dependency eventsystem ~>1.2.0 of serve-d
Refreshing local packages (refresh existing: false)...
.
.
.
Return for fluent-asserts: [0.9.0, 0.8.5, 0.8.4, 0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.1, 0.7.0, 0.6.7, 0.6.6, 0.6.5, 0.6.4, 0.6.3, 0.6.2, 0.6.1, 0.6.0, 0.5.4, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.2, 0.4.1, 0.4.0, 0.3.0, 0.2.0, ~master, ~67-improve-exception-proxy-uability, ~65-immutable-array-compiler-error, ~60-fix-source-result, ~55-update-code-parsing, ~54-fix-code-sugestion, ~52-void-array-compare, ~50-be-null-for-delegate, ~37-wrong-code-sugestion, ~32-null-strings, ~31-approximately-for-ranges]
Search for versions of ddmp (1 package suppliers)
Return for ddmp: [0.0.1-0.dev.3, 0.0.1-0.dev.2, 0.0.1-0.dev.1, ~master]
Search for versions of unit-threaded (1 package suppliers)
Return for unit-threaded: [0.7.36, 0.7.35, 0.7.34, 0.7.33, 0.7.32, 0.7.31, 0.7.30, 0.7.29, 0.7.28, 0.7.27, 0.7.26, 0.7.25, 0.7.24, 0.7.23, 0.7.22, 0.7.21, 0.7.20, 0.7.19, 0.7.18, 0.7.17, .
.
.
.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.23-beta.2.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.23-beta.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.22-rc.1.
.
.
.
Failed to load path based dependency memutils: No package file found in ../memutils/, expected one of dub.json/dub.sdl/package.json
.
.
.
rc.2, 0.9.21-rc.1, 0.9.21-beta.3, 0.9.21-beta.2, 0.9.21-beta.1, 0.9.20-rc.1, 0.9.20-beta.4, 0.9.20-beta.3, 0.9.20-beta.2, 0.9.20-beta.1, ~master, ~version-interval, ~upgrade_sdlang, ~stable, ~revert-1166-build_options, ~no_library_selections, ~newCTFE, ~issue_422_dependency_sub_configs, ~issue_228_target_triples, ~fix_issue_622, ~extend_system_libs]
Search for versions of standardpaths (1 package suppliers)
Return for standardpaths: [0.8.0, 0.7.1, 0.7.0, 0.6.1, 0.6.0, 0.5.0, 0.4.0, 0.3.1, 0.3.0, 0.2.1, 0.2.0, 0.1.2, 0.1.1, 0.1.0, 0.0.4, 0.0.3, 0.0.2, 0.0.1, 0.0.1-alpha.1, 0.0.1-alpha, ~master]
Search for versions of xdgpaths (1 package suppliers)
Return for xdgpaths: [0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.3, 0.1.2, 0.1.1, 0.1.0, ~master]
Search for versions of isfreedesktop (1 package suppliers)
Return for isfreedesktop: [0.1.1, 0.1.0, ~master]
Search for versions of eventsystem (1 package suppliers)
Return for eventsystem: [1.2.0, 1.1.0, 1.0.1, 1.0.0, ~master]
Root package serve-d reference fluent-asserts ~>0.8.5 cannot be satisfied.

A couple of errors/warnings installing serve-d through code-d-beta

Complete output from the installation:

Installing into /home/mike/.local/share/code-d/bin
> git clone --recursive https://github.com/Pure-D/serve-d.git serve-d
Cloning into 'serve-d'...
> dub upgrade
Upgrading project in /home/mike/.local/share/code-d/bin/serve-d
Fetching xdgpaths 0.2.4 (getting selected version)...
Fetching isfreedesktop 0.1.1 (getting selected version)...
Fetching eventsystem 1.2.0 (getting selected version)...
Fetching dub 1.3.0 (getting selected version)...
Fetching libdparse 0.7.1-beta.9 (getting selected version)...
Fetching painlesstraits 0.2.0 (getting selected version)...
Fetching libddoc 0.2.0 (getting selected version)...
Fetching workspace-d ~master (getting selected version)...
Fetching standardpaths 0.7.1 (getting selected version)...
Fetching painlessjson 1.3.8 (getting selected version)...
Fetching dunit 1.0.14 (getting selected version)...
> dub build --build=release
WARNING: A deprecated branch based version specification is used for the dependency workspace-d. Please use numbered versions instead. Also note that you can still use the dub.selections.json file to override a certain dependency to use a branch instead.
Performing "release" build using dmd for x86_64.
eventsystem 1.2.0: building configuration "library"...
libdparse 0.7.1-beta.9: building configuration "library"...
libddoc 0.2.0: building configuration "lib"...
dunit 1.0.14: building configuration "library"...
painlesstraits 0.2.0: building configuration "library"...
painlessjson 1.3.8: building configuration "library"...
dfmt 0.5.0: building configuration "library"...
dub 1.3.0: building configuration "library"...
isfreedesktop 0.1.1: building configuration "library"...
xdgpaths 0.2.4: building configuration "library"...
standardpaths 0.7.1: building configuration "default"...
workspace-d ~master: building configuration "library"...
../../../../../.dub/packages/workspace-d-master/workspace-d/source/workspaced/com/importer.d(34,24): Deprecation: function dparse.parser.parseModule is deprecated - Use the overload accepting a delegate instead of a function
../../../../../.dub/packages/workspace-d-master/workspace-d/source/workspaced/com/importer.d(47,24): Deprecation: function dparse.parser.parseModule is deprecated - Use the overload accepting a delegate instead of a function
../../../../../.dub/packages/workspace-d-master/workspace-d/source/workspaced/com/moduleman.d(49,28): Deprecation: function dparse.parser.parseModule is deprecated - Use the overload accepting a delegate instead of a function
../../../../../.dub/packages/workspace-d-master/workspace-d/source/workspaced/com/moduleman.d(123,27): Deprecation: function dparse.parser.parseModule is deprecated - Use the overload accepting a delegate instead of a function
serve-d ~master: building configuration "application"...
dmd failed with exit code -11.
Failed to install serve-d (Error code 2)

Installation on Windows failed "cannot open input file curl.lib"

I downloaded VS Code and attempted adding code-d serve-d beta today (at the time of writing this).
I installed ldc from this page: https://github.com/ldc-developers/ldc/releases/tag/LDC-Win64-master
as recommended here: https://wiki.dlang.org/Latest_LDC_binaries_for_Windows

This is the output log from VS Code:

Installing into C:\Users\piotr\AppData\Roaming\code-d\bin
Removing old version
Removed old version

git clone --recursive https://github.com/Pure-D/serve-d.git serve-d
Cloning into 'serve-d'...
dub upgrade
Upgrading project in C:\Users\piotr\AppData\Roaming\code-d\bin\serve-d
Re-installing branch based dependency workspace-d ~master
Removed package: 'workspace-d'
Fetching workspace-d ~master (getting selected version)...
Re-installing branch based dependency dscanner ~master
Removed package: 'dscanner'
Fetching dscanner ~master (getting selected version)...
dub build --build=release --compiler=ldc2 --combined
WARNING: A deprecated branch based version specification is used for the dependency workspace-d. Please use numbered versions instead. Also note that you can still use the dub.selections.json file to override a certain dependency to use a branch instead.
Performing "release" build using ldc2 for x86_64.
serve-d ~master: building configuration "application"...
......\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
......\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
......\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(69,34): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
......\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
......\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
......\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(69,34): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
C:\D\LDC-master-4450-x64\bin..\include\d\std\uri.d(338,19): Deprecation: function std.utf.toUTF8 is deprecated - To be removed November 2017. Please use std.utf.encode instead.
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(109,18): Deprecation: ddmp.diff.max is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(109,50): Deprecation: ddmp.diff.min is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(115,21): Deprecation: ddmp.diff.max is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(121,51): Deprecation: ddmp.diff.min is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(303,32): Deprecation: ddmp.diff.min is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(305,32): Deprecation: ddmp.diff.min is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(450,38): Deprecation: ddmp.diff.min is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(469,35): Deprecation: ddmp.diff.max is not visible from module patch
......\dub\packages\ddmp-0.0.1-0.dev.2\ddmp\source\ddmp\patch.d(529,3): Deprecation: ddmp.diff.enforce is not visible from module patch
C:\D\LDC-master-4450-x64\bin..\include\d\std\uri.d(323,19): Deprecation: function std.utf.toUTF8 is deprecated - To be removed November 2017. Please use std.utf.encode instead.
LINK : fatal error LNK1181: cannot open input file 'curl.lib'
Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\link.exe failed with status: 1181
ldc2 failed with exit code 1181.
Failed to install serve-d (Error code 2)

Building another project with dub build --compiler=ldc2 works fine

serve-d installation hangs

When I open a D project folder for the first time after installing the serve-d extension (0.17.5), I get the message "Upgrading project in /home/ivan/.local/share/code-d/bin/serve-d" in the output window and nothing else happens. When I check the Git output, I have a bunch of messages that say:

git rev-parse --show-toplevel
fatal: Not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Server crashes trying to start dub

I have LDC installed, successfully compiled serve-d with dub build.
Then installed code-d in Code and specified full paths for every component needed in user settings (for dub, serve-d, dfmt, etc). But when I open any D project I have an error message saying The code-d & serve-d server crashed 5 times in the last 3 minutes. The server will not be restarted. and this output in console:

2017-08-21T14:41:58.609:source\app.d:main:201 Features fulfilled
2017-08-21T14:41:58.609:source\app.d:main:205 Started reading from stdin
2017-08-21T14:41:58.609:source\app.d:main:209 RPC started
2017-08-21T14:41:58.620:source\app.d:main:220 Has Message
2017-08-21T14:41:58.620:source\app.d:main:222 Message: RequestMessage(0, "initialize", {"capabilities":{"textDocument":{"codeAction":{"dynamicRegistration":true},"codeLens":{"dynamicRegistration":true},"completion":{"completionItem":{"snippetSupport":true},"dynamicRegistration":true},"definition":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentLink":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"hover":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true},"signatureHelp":{"dynamicRegistration":true},"synchronization":{"didSave":true,"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true}},"workspace":{"applyEdit":true,"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true},"executeCommand":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true},"workspaceEdit":{"documentChanges":true}}},"processId":7092,"rootPath":"d:\\Workspace\\d\\serve-d","rootUri":"file:\/\/\/d%3A\/Workspace\/d\/serve-d","trace":"off"})
2017-08-21T14:41:58.631:source\app.d:__lambda10:228 Processing as request
2017-08-21T14:41:58.631:source\app.d:processRequest:50 Initializing
2017-08-21T14:41:58.631:source\served\extension.d:initialize:139 Initializing serve-d for d:\Workspace\d\serve-d
2017-08-21T14:41:58.631:source\served\extension.d:initialize:152 Starting dub...
[Info  - 14:41:58] Connection to server got closed. Server will restart.

This repeats several times until...

[Error - 14:41:58] Connection to server got closed. Server will not be restarted.

Autoformat messes up associative array literals

I am using the stroustrup formatting. My associative array looks like this:

immutable string[string] engines = [
    "Google": "google.com/search?q={{query}}",
    "DuckDuckGo": "duckduckgo.com/?q={{query}}",
    "Bing": "bing.com/search?q={{query}}",
    "Yahoo": "search.yahoo.com/search?p={{query}}",
    "Wikipedia": "wikipedia.org/wiki/Special:Search?search={{query}}",
    "GitHub": "github.com/search?q={{query}}",
    "Wolfram Alpha": "wolframalpha.com/input/?i={{query}}",
    "Ask": "ask.com/web?q={{query}}"
];

And then after formatting:

immutable string[string] engines = [
    "Google" : "google.com/search?q={{query}}", "DuckDuckGo"
    : "duckduckgo.com/?q={{query}}",
    "Bing" : "bing.com/search?q={{query}}", "Yahoo" : "search.yahoo.com/search?p={{query}}", "Wikipedia"
    : "wikipedia.org/wiki/Special:Search?search={{query}}",
    "GitHub" : "github.com/search?q={{query}}",
    "Wolfram Alpha" : "wolframalpha.com/input/?i={{query}}", "Ask" : "ask.com/web?q={{query}}"
];

For now I'm just using // dfmt off and // dfmt on to get around this.

I am using VS Code and code-d. I created an issue for code-d and was informed this is a problem of serve-d.

Compiling under Windows 64bit is not allowed

Re-installing branch based dependency workspace-d ~master
Removed package: 'workspace-d'
Fetching workspace-d ~master (getting selected version)...
> dub build --build=release --compiler=ldc2 --combined
WARNING: A deprecated branch based version specification is used for the dependency workspace-d. Please use numbered versions instead. Also note that you can still use the dub.selections.json file to override a certain dependency to use a branch instead.
Performing "release" build using ldc2 for x86_64.
serve-d ~master: building configuration "application"...
..\..\..\dub\packages\workspace-d-master\workspace-d\source\workspaced\info.d(11,36): Error: static assert  "Compiling 64 bit on windows is not supported (it breaks dub)"
ldc2 failed with exit code 1.
Failed to install serve-d (Error code 2)

Trying out the new version on Windows10 64bit + Ryzen.

Functionality not working on multi-project folder structure...

Example:

auto gpg2 = new Gpg2();
gpg2 >> press dot ... >> Loading >> ... nothing. No functions showing up

According to the log, it can not resolve the module.


Server: 2017-08-25T21:49:32.200:......\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d:visit:411 Could not resolve location of module 'gpg2'

Server: 2017-08-25T21:49:32.200:......\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d:visit:411 Could not resolve location of module 'webserver'

Server: 2017-08-25T21:49:32.201:src\server\main.d:main:323 Request processed in 4.2609 milliseconds

2017-08-25T21:49:32.226:source\app.d:__lambda10:230 Responding with: ResponseMessage(28, {"isIncomplete":false,"items":[]}, null(ResponseError))
2017-08-25T21:49:32.226:source\served\jsonrpc.d:send:66 {"id":28,"jsonrpc":"2.0","result":{"isIncomplete":false,"items":[]}}
2017-08-25T21:49:32.385:source\served\jsonrpc.d:send:66 {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///d%3A/Dev/D/Fvm-Backend/source/app.d"}}
2017-08-25T21:49:32.385:source\served\extension.d:parallelMain:1671 Calling timeout


The issue is actually simple ... If you open a root folder for your project ( lets say several projects depend on each other ), like:

/ProjectA/source/fileA
/ProjectB/source/fileB

You open fileA, Dub is unable to tell that it file you open belongs to projectA. This result in no resolution of dub. I remember that OmniSharp (C#) has no issue with this.

Technically the new Multi-Workspaces that Visual Studio Code will have, can help with that issue as you can then open each Project in a separate workspace, with its own Dub handler. But it may be adviced to add some checks to inform people that there directory structure does not fit the correct standards?

Easy to tell with the massive amount of dsymbol errors... ;)

Crash

Installed serve-d at work on mobile VSC 1.15.1. Only on other extension installed (vscode-icons):

Extension Host] vscode-icons is active!
/J:/PortableApps/VSCodePortable/App/VSCode64/resources/app/out/vs/workbench/workbench.main.js:28 Extension host terminated unexpectedly. Please reload the window to recover.
e.doShow @ /J:/PortableApps/VSCodePortable/App/VSCode64/resources/app/out/vs/workbench/workbench.main.js:28
/J:/PortableApps/VSCodePortable/App/VSCode64/resources/app/out/vs/workbench/workbench.main.js:29 Extension host terminated unexpectedly. Code:  3221225477  Signal:  null
t.onExit @ /J:/PortableApps/VSCodePortable/App/VSCode64/resources/app/out/vs/workbench/workbench.main.js:29
index.js:5 [uncaught exception]: Error: write EPIPE
onError @ index.js:5
index.js:5 Error: write EPIPE
    at exports._errnoException (util.js:1022:11)
    at Socket._writeGeneric (net.js:715:26)
    at Socket._write (net.js:734:8)
    at doWrite (_stream_writable.js:332:12)
    at writeOrBuffer (_stream_writable.js:318:5)
    at Socket.Writable.write (_stream_writable.js:245:11)
    at Socket.write (net.js:661:40)
    at Immediate.<anonymous> (file:///J:/PortableApps/VSCodePortable/App/VSCode64/resources/app/out/vs/workbench/workbench.main.js:28:191009)
    at runCallback (timers.js:651:20)
    at tryOnImmediate (timers.js:624:5)
onError @ index.js:5
events.js:160 Uncaught Error: write EPIPE
    at exports._errnoException (util.js:1022:11)
    at Socket._writeGeneric (net.js:715:26)
    at Socket._write (net.js:734:8)
    at doWrite (_stream_writable.js:332:12)
    at writeOrBuffer (_stream_writable.js:318:5)
    at Socket.Writable.write (_stream_writable.js:245:11)
    at Socket.write (net.js:661:40)
    at Immediate.<anonymous> (file:///J:/PortableApps/VSCodePortable/App/VSCode64/resources/app/out/vs/workbench/workbench.main.js:28:191009)
    at runCallback (timers.js:651:20)
    at tryOnImmediate (timers.js:624:5)

Add refactoring support

There seems to be support for this in the VS Code (Rename symbols in all files), but this doesn't seem to work in D files.

Color syntax issue

Not sure if this is part of Serve-d or not.

public void decrypt(string keyring, string passphrase, string decrypte_filename, string output_filename)

output_filename will have the "out" part showing in purple color, while the rest is light blue. It looks like the "out" keyword check is not checking if there is text behind it = variable.

Cannot build 32bit binary

serve-d cannot be built with the following command:

> dub build -b=release -a=x86 --compiler=ldc2
WARNING: A deprecated branch based version specification is used for the dependency workspace-d. Please use numbered versions instead. Also note that you can still use the dub.selections.json file to override a certain dependency to use a branch instead.
Performing "release" build using ldc2 for x86.
eventsystem 1.2.0: building configuration "library"...
ddmp 0.0.1-0.dev.3: building configuration "library"...
libdparse 0.7.2-alpha.6: building configuration "library"...
fluent-asserts:core 0.8.5: building configuration "library"...
fluent-asserts 0.8.5: building configuration "library"...
libddoc 0.2.0: building configuration "lib"...
dunit 1.0.14: building configuration "library"...
painlesstraits 0.2.0: building configuration "library"...
painlessjson 1.3.8: building configuration "library"...
dfmt 0.6.0-alpha.1: building configuration "library"...
emsi_containers 0.5.3: building configuration "library"...
dsymbol 0.2.9: building configuration "library"...
inifiled 1.0.2: building configuration "library"...
dscanner 0.4.2: building configuration "library"...
dub 1.7.1: building configuration "library"...
isfreedesktop 0.1.1: building configuration "library"...
xdgpaths 0.2.4: building configuration "library"...
standardpaths 0.8.0: building configuration "default"...
workspace-d ~master: building configuration "library"...
serve-d ~master: building configuration "application"...
%APPDATA%\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
%APPDATA%\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
%APPDATA%\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(69,34): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
%APPDATA%\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
%APPDATA%\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
%APPDATA%\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(69,34): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
source\served\extension.d(1059,22): Error: cannot implicitly convert expression idx of type long to uint
source\served\extension.d(1067,22): Error: cannot implicitly convert expression idx of type long to uint
source\served\extension.d(1067,51): Error: cannot implicitly convert expression idx of type long to uint
source\served\extension.d(1067,80): Error: cannot implicitly convert expression idx of type long to uint

> ldc2 --version
LDC - the LLVM D compiler (1.7.0):
  based on DMD v2.077.1 and LLVM 5.0.1
  built with LDC - the LLVM D compiler (1.6.0)
  Default target: x86_64-pc-windows-msvc
  Host CPU: haswell

> dub --version
DUB version 1.6.0, built on Jan  5 2018

Write LSP messages to stdout

Currently serve-d writes some warnings and errors to stderr, and also the LSP messages. If the messages are written to stdout, then it will be possible for LSP clients which control LSP servers by running them as long running programs to integrate with serve-d. This is all ALE supports at the moment. (Managing TCP connections is much harder, and isn't supported in NeoVim yet.)

Serve-d is crashing a lot in VSC 1.19

After a few minutes of working in Visual Studio Code 1.19.0, I get the message "The code-d & serve-d server crashed 5 times in the last 3 minutes. The server will not be restarted."

This is on Linux, if that makes any difference.

Add highlight provider

  • Highlight selected variable in the scope
  • Highlight which statement return break continue affects

Unknown DDOC macros are skipped

Currently, if the documentation parser encounters a macro that isn't a predefined one, what ever is inside that macro is left out of the documentation popup.

Perhaps not the best solution, but I wonder if it would be better to considered all unknown macros as being equal to $0 so that the text being passed to them is at least visible. Some projects will need to rework macros to take this into account (perhaps the text they are displaying is not the first macro param), but at least it is a way to get text to appear in the documentation popup.

Can not install without LDC2

Removing old version
Removed old version
git clone --recursive https://github.com/Pure-D/serve-d.git serve-d
Cloning into 'serve-d'...
dub upgrade
Upgrading project in C:\Users\Benny\AppData\Roaming\code-d\bin\serve-d
Re-installing branch based dependency workspace-d ~master
Removed package: 'workspace-d'
Fetching workspace-d ~master (getting selected version)...
dub build --build=release --compiler=ldc2 --combined
Failed to invoke the compiler ldc2 to determine the build platform: '"ldc2"' is not recognized as an internal or external command,
operable program or batch file.
Failed to install serve-d (Error code 2)`

Fairly sure that most people will install DMD by default, not LDC ;)

Anonymize log

replace username with $USER in paths, replace workspace path with $ROOT[n]

Binary distributions and documentation

To facilitate integration of the language server in the various tools, it would make integration much easier to provide binary builds of the language server and documentation on how to start it.

dub build failed on linux for dependency resolution procerss

reporting The dependency resolution process is taking too long. when building with dub

Using dub registry url 'https://code.dlang.org/'
Refreshing local packages (refresh existing: true)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /home/dbh/.dub/packages/local-packages.json
Determined package version using GIT: serve-d ~master
Refreshing local packages (refresh existing: false)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /home/dbh/.dub/packages/local-packages.json
  Found dependency fluent-asserts 0.8.5
    Found dependency fluent-asserts:core 0.8.5
      Found dependency ddmp 0.0.1-0.dev.3
      Version selection for dependency unit-threaded (unit-threaded) of fluent-asserts:core is missing.
      Missing dependency unit-threaded >=0.0.0 (optional) of fluent-asserts:core
      Found dependency libdparse 0.8.0-alpha.3
    Found dependency openssl 1.1.6+1.0.1g
    Found dependency vibe-d:http 0.8.2
      Found dependency vibe-d:tls 0.8.2
        Found dependency vibe-d:stream 0.8.2
          Found dependency vibe-d:core 0.8.2
            Found dependency vibe-d:utils 0.8.2
            Found dependency vibe-d:data 0.8.2
            Found dependency libevent 2.0.2+2.0.16
            Found dependency libasync 0.8.3
              Found dependency memutils 0.4.9
            Found dependency vibe-core 1.3.0
              Found dependency eventcore 0.8.27
                Found dependency taggedalgebraic 0.10.9
        Found dependency botan 1.12.9
          Found dependency botan-math 1.0.3
      Found dependency vibe-d:crypto 0.8.2
      Found dependency vibe-d:inet 0.8.2
        Found dependency vibe-d:textfilter 0.8.2
      Found dependency diet-ng 1.4.4
  Found dependency painlessjson 1.3.8
    Found dependency painlesstraits 0.2.0
    Found dependency dunit 1.0.14
  Found dependency libddoc 0.2.0
  Found dependency workspace-d ~master
    Found dependency dscanner 0.4.2
      Found dependency dsymbol 0.2.9
        Found dependency emsi_containers 0.5.3
      Found dependency inifiled 1.0.2
    Found dependency dfmt 0.6.0-alpha.1
    Found dependency dub 1.7.1
    Found dependency standardpaths 0.8.0
      Found dependency xdgpaths 0.2.4
        Found dependency isfreedesktop 0.1.1
  Found dependency eventsystem 1.2.0
Refreshing local packages (refresh existing: false)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /home/dbh/.dub/packages/local-packages.json
  Found dependency fluent-asserts 0.8.5
    Found dependency fluent-asserts:core 0.8.5
      Found dependency ddmp 0.0.1-0.dev.3
      Version selection for dependency unit-threaded (unit-threaded) of fluent-asserts:core is missing.
      Missing dependency unit-threaded >=0.0.0 (optional) of fluent-asserts:core
      Found dependency libdparse 0.8.0-alpha.3
    Found dependency openssl 1.1.6+1.0.1g
    Found dependency vibe-d:http 0.8.2
      Found dependency vibe-d:tls 0.8.2
        Found dependency vibe-d:stream 0.8.2
          Found dependency vibe-d:core 0.8.2
            Found dependency vibe-d:utils 0.8.2
            Found dependency vibe-d:data 0.8.2
            Found dependency libevent 2.0.2+2.0.16
            Found dependency libasync 0.8.3
              Found dependency memutils 0.4.9
            Found dependency vibe-core 1.3.0
              Found dependency eventcore 0.8.27
                Found dependency taggedalgebraic 0.10.9
        Found dependency botan 1.12.9
          Found dependency botan-math 1.0.3
      Found dependency vibe-d:crypto 0.8.2
      Found dependency vibe-d:inet 0.8.2
        Found dependency vibe-d:textfilter 0.8.2
      Found dependency diet-ng 1.4.4
  Found dependency painlessjson 1.3.8
    Found dependency painlesstraits 0.2.0
    Found dependency dunit 1.0.14
  Found dependency libddoc 0.2.0
  Found dependency workspace-d ~master
    Found dependency dscanner 0.4.2
      Found dependency dsymbol 0.2.9
        Found dependency emsi_containers 0.5.3
      Found dependency inifiled 1.0.2
    Found dependency dfmt 0.6.0-alpha.1
    Found dependency dub 1.7.1
    Found dependency standardpaths 0.8.0
      Found dependency xdgpaths 0.2.4
        Found dependency isfreedesktop 0.1.1
  Found dependency eventsystem 1.2.0
Checking for upgrades.
Search for versions of fluent-asserts (1 package suppliers)
Return for fluent-asserts: [0.9.0, 0.8.5, 0.8.4, 0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.1, 0.7.0, 0.6.7, 0.6.6, 0.6.5, 0.6.4, 0.6.3, 0.6.2, 0.6.1, 0.6.0, 0.5.4, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.2, 0.4.1, 0.4.0, 0.3.0, 0.2.0, ~master, ~67-improve-exception-proxy-uability, ~65-immutable-array-compiler-error, ~60-fix-source-result, ~55-update-code-parsing, ~54-fix-code-sugestion, ~52-void-array-compare, ~50-be-null-for-delegate, ~37-wrong-code-sugestion, ~32-null-strings, ~31-approximately-for-ranges]
Search for versions of ddmp (1 package suppliers)
Return for ddmp: [0.0.1-0.dev.3, 0.0.1-0.dev.2, 0.0.1-0.dev.1, ~master]
Search for versions of unit-threaded (1 package suppliers)
Return for unit-threaded: [0.7.42, 0.7.41, 0.7.40, 0.7.39, 0.7.38, 0.7.37, 0.7.36, 0.7.35, 0.7.34, 0.7.33, 0.7.32, 0.7.31, 0.7.30, 0.7.29, 0.7.28, 0.7.27, 0.7.26, 0.7.25, 0.7.24, 0.7.23, 0.7.22, 0.7.21, 0.7.20, 0.7.19, 0.7.18, 0.7.17, 0.7.16, 0.7.15, 0.7.14, 0.7.13, 0.7.12, 0.7.11, 0.7.10, 0.7.9, 0.7.8, 0.7.7, 0.7.6, 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0, 0.6.36, 0.6.35, 0.6.34, 0.6.33, 0.6.32, 0.6.31, 0.6.30, 0.6.29, 0.6.28, 0.6.27, 0.6.26, 0.6.25, 0.6.24, 0.6.23, 0.6.22, 0.6.21, 0.6.20, 0.6.19, 0.6.18, 0.6.17, 0.6.16, 0.6.15, 0.6.14, 0.6.13, 0.6.12, 0.6.11, 0.6.10, 0.6.9, 0.6.8, 0.6.7, 0.6.6, 0.6.5, 0.6.4, 0.6.3, 0.6.2, 0.6.1, 0.6.0, 0.5.11, 0.5.10, 0.5.9, 0.5.8, 0.5.7, 0.5.6, 0.5.5, 0.5.4, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.10, 0.4.9, 0.4.8, 0.4.7, 0.4.6, 0.4.5, 0.4.3, 0.4.2, ~master, ~should, ~parametrised_types_bug, ~gh-pages, ~experimental]
Search for versions of libdparse (1 package suppliers)
Return for libdparse: [0.8.0, 0.7.1, 0.7.0, 0.6.0, 0.5.0, 0.4.3, 0.4.2, 0.4.1, 0.4.0, 0.3.0, 0.2.1, 0.2.0, 0.1.1, 0.1.0, 0.8.0-alpha.5, 0.8.0-alpha.4, 0.8.0-alpha.3, 0.8.0-alpha.2, 0.8.0-alpha.1, 0.7.2-alpha.6, 0.7.2-alpha.5, 0.7.2-alpha.4, 0.7.2-alpha.3, 0.7.2-alpha.2, 0.7.2-alpha.1, 0.7.1-beta.9, 0.7.1-beta.8, 0.7.1-beta.7, 0.7.1-beta.6, 0.7.1-beta.5, 0.7.1-beta.4, 0.7.1-beta.3, 0.7.1-beta.2, 0.7.1-beta.1, 0.7.0-beta.8, 0.7.0-beta.7, 0.7.0-beta.6, 0.7.0-beta.5, 0.7.0-beta.4, 0.7.0-beta.3, 0.7.0-beta.2, 0.7.0-beta.1, 0.7.0-alpha9, 0.7.0-alpha8, 0.7.0-alpha7, 0.7.0-alpha6, 0.7.0-alpha5, 0.7.0-alpha4, 0.7.0-alpha3, 0.7.0-alpha2, 0.7.0-alpha12, 0.7.0-alpha11, 0.7.0-alpha10, 0.7.0-alpha1, 0.7.0-alpha.15, 0.7.0-alpha.14, 0.7.0-alpha.13, ~master]
Search for versions of stdx-allocator (1 package suppliers)
Return for stdx-allocator: [2.77.1, 2.77.0, 2.77.0-1, ~master]
Search for versions of openssl (1 package suppliers)
Return for openssl: [1.1.6+1.0.1g, 1.1.5+1.0.1g, 1.1.4+1.0.1g, 1.1.3+1.0.1g, 1.1.2+1.0.1g, 1.1.1+1.0.1g, 1.1.0+1.0.1g, 1.0.0+1.0.0e, ~master]
Search for versions of vibe-d (1 package suppliers)
Return for vibe-d: [0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.32, 0.7.31, 0.7.30, 0.7.29, 0.7.28, 0.7.27, 0.7.26, 0.7.25, 0.7.24, 0.7.23, 0.8.4-alpha.1, 0.8.3-rc.2, 0.8.3-rc.1, 0.8.3-beta.1, 0.8.3-alpha.4, 0.8.3-alpha.3, 0.8.3-alpha.2, 0.8.3-alpha.1, 0.8.2-rc.2, 0.8.2-rc.1, 0.8.2-alpha.3, 0.8.2-alpha.2, 0.8.2-alpha.1, 0.8.1-rc.4, 0.8.1-rc.3, 0.8.1-rc.2, 0.8.1-rc.1, 0.8.1-beta.2, 0.8.1-beta.1, 0.8.1-alpha.4, 0.8.1-alpha.3, 0.8.1-alpha.2, 0.8.1-alpha.1, 0.8.0-rc.6, 0.8.0-rc.5, 0.8.0-rc.4, 0.8.0-rc.3, 0.8.0-rc.2, 0.8.0-rc.1, 0.8.0-beta.8, 0.8.0-beta.7, 0.8.0-beta.6, 0.8.0-beta.5, 0.8.0-beta.4, 0.8.0-beta.3, 0.8.0-beta.2, 0.8.0-beta.1, 0.8.0-alpha.1, 0.7.32-rc.1, 0.7.32-alpha.1, 0.7.31-rc.3, 0.7.31-rc.2, 0.7.31-rc.1, 0.7.31-beta.2, 0.7.31-beta.1, 0.7.31-alpha.1, 0.7.30-rc.2, 0.7.30-rc.1, 0.7.30-beta.1, 0.7.30-alpha.5, 0.7.30-alpha.4, 0.7.30-alpha.3, 0.7.30-alpha.2, 0.7.30-alpha.1, 0.7.29-rc.1, 0.7.29-beta.2, 0.7.29-beta.1, 0.7.29-alpha.3, 0.7.29-alpha.2, 0.7.29-alpha.1, 0.7.28-alpha.1, 0.7.27-rc.2, 0.7.27-rc.1, 0.7.27-beta.1, 0.7.27-alpha.3, 0.7.27-alpha.2, 0.7.27-alpha.1, 0.7.26-rc.3, 0.7.26-rc.2, 0.7.26-rc.1, 0.7.26-beta.1, 0.7.26-alpha.3, 0.7.26-alpha.2, 0.7.26-alpha.1, 0.7.25-rc.1, 0.7.25-alpha.1, 0.7.24-rc.2, 0.7.24-rc.1, 0.7.24-beta.4, 0.7.24-beta.3, 0.7.24-beta.2, 0.7.24-beta.1, 0.7.23-rc.4, 0.7.23-rc.3, 0.7.23-rc.2, 0.7.23-rc.1, ~master, ~test_latest_compilers_on_0.7, ~rest_request_body_filter, ~merge_0.7_urlrouter, ~merge_0.7_openssl, ~merge_0.7_fix_serialization_test, ~merge_0.7_2050_1951_2112, ~issue_1994_json_trailing_comma, ~http_speedup, ~http2-botan-cleanup, ~http2-botan, ~0.7.x]
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:utils doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:utils doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:data doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:data doesn't exist in vibe-d ~http2-botan.
Search for versions of vibe-core (1 package suppliers)
Return for vibe-core: [1.4.0, 1.3.0, 1.2.0, 1.1.1, 1.1.0, 1.0.0, 1.4.1-beta.1, 1.4.0-rc.2, 1.4.0-rc.1, 1.4.0-alpha.1, 1.3.0-rc.2, 1.3.0-rc.1, 1.3.0-alpha.2, 1.3.0-alpha.1, 1.2.1-alpha.2, 1.2.1-alpha.1, 1.0.0-rc.4, 1.0.0-rc.3, 1.0.0-rc.2, 1.0.0-rc.1, 1.0.0-beta.8, 1.0.0-beta.7, 1.0.0-beta.6, 1.0.0-beta.5, 1.0.0-beta.4, 1.0.0-beta.3, 1.0.0-beta.2, 1.0.0-beta.1, 1.0.0-alpha.14, 1.0.0-alpha.13, 1.0.0-alpha.12, 1.0.0-alpha.11, 1.0.0-alpha.10, 1.0.0-alpha.9, 1.0.0-alpha.8, 1.0.0-alpha.7, 1.0.0-alpha.6, 1.0.0-alpha.5, 1.0.0-alpha.4, 1.0.0-alpha.3, 1.0.0-alpha.2, 1.0.0-alpha.1, ~master, ~reproduce_optlink_issue_18, ~dip1000, ~channels]
Search for versions of eventcore (1 package suppliers)
Return for eventcore: [0.8.34, 0.8.33, 0.8.32, 0.8.31, 0.8.30, 0.8.29, 0.8.28, 0.8.27, 0.8.26, 0.8.25, 0.8.24, 0.8.23, 0.8.22, 0.8.21, 0.8.20, 0.8.19, 0.8.18, 0.8.17, 0.8.16, 0.8.15, 0.8.14, 0.8.13, 0.8.12, 0.8.11, 0.8.10, 0.8.9, 0.8.8, 0.8.7, 0.8.6, 0.8.5, 0.8.4, 0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.1, 0.7.0, 0.6.0, 0.5.7, 0.5.6, 0.5.5, 0.5.4, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.0, 0.3.0, 0.2.0, 0.1.2, 0.1.1, ~master, ~issue_29_duplicate_object_name]
Search for versions of taggedalgebraic (1 package suppliers)
Return for taggedalgebraic: [0.10.11, 0.10.10, 0.10.9, 0.10.8, 0.10.7, 0.10.6, 0.10.5, 0.10.4, 0.10.3, 0.10.2, 0.10.1, 0.10.0, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, ~master, ~opApply]
Search for versions of libasync (1 package suppliers)
Return for libasync: [0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.9, 0.7.8, 0.7.7, 0.7.6, 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0, 0.6.8, 0.6.7, 0.6.6, 0.6.5, 0.6.4, 0.6.3, 0.6.2, ~master, ~remove_mscoff_config, ~patch-1]
Search for versions of memutils (1 package suppliers)
Return for memutils: [0.4.10, 0.4.9, 0.4.8, 0.4.7, 0.4.6, 0.4.5, 0.4.4, 0.4.3, 0.4.2, 0.4.1, 0.4.0, 0.3.8, 0.3.7, 0.3.6, 0.3.5, 0.3.4, 0.3.3, 0.3.2, 0.3.1, 0.3.0, ~master, ~remove_postblit_qualifiers, ~remove_32mscoff_config]
Search for versions of libevent (1 package suppliers)
Return for libevent: [2.0.2+2.0.16, 2.0.1+2.0.16, 2.0.0+2.0.16, ~master]
Search for versions of botan (1 package suppliers)
Ignoring version specification (>=0.0.0) for path based dependency ../memutils
Return for botan: [1.12.9, 1.12.8, 1.12.7, 1.12.6, 1.12.5, 1.12.4, 1.12.3, 1.12.2, 1.12.1, 1.12.0, 1.11.14, 1.11.13, 1.11.12, 1.11.11, 1.11.10, ~master, ~merge-new-algos, ~ldc-compat, ~fix-tls]
Search for versions of botan-math (1 package suppliers)
Return for botan-math: [1.0.3, 1.0.2, 1.0.1, 1.0.0, ~master]
Sub package botan:base doesn't exist in botan 1.12.9.
Sub package botan:base doesn't exist in botan 1.12.0.
Sub package botan:base doesn't exist in botan 1.11.14.
Sub package botan:base doesn't exist in botan 1.11.13.
Sub package botan:base doesn't exist in botan 1.11.12.
Sub package botan:base doesn't exist in botan 1.11.11.
Sub package botan:base doesn't exist in botan 1.11.10.
Sub package botan:base doesn't exist in botan ~master.
Sub package botan:base doesn't exist in botan ~merge-new-algos.
Sub package botan:base doesn't exist in botan ~ldc-compat.
Sub package botan:base doesn't exist in botan ~fix-tls.
Sub package botan:compression doesn't exist in botan 1.12.9.
Sub package botan:compression doesn't exist in botan 1.12.0.
Sub package botan:compression doesn't exist in botan 1.11.14.
Sub package botan:compression doesn't exist in botan 1.11.13.
Sub package botan:compression doesn't exist in botan 1.11.12.
Sub package botan:compression doesn't exist in botan 1.11.11.
Sub package botan:compression doesn't exist in botan 1.11.10.
Sub package botan:compression doesn't exist in botan ~master.
Sub package botan:compression doesn't exist in botan ~merge-new-algos.
Sub package botan:compression doesn't exist in botan ~ldc-compat.
Sub package botan:compression doesn't exist in botan ~fix-tls.
Sub package botan:tls doesn't exist in botan 1.12.9.
Sub package botan:tls doesn't exist in botan 1.12.0.
Sub package botan:tls doesn't exist in botan 1.11.14.
Sub package botan:tls doesn't exist in botan 1.11.13.
Sub package botan:tls doesn't exist in botan 1.11.12.
Sub package botan:tls doesn't exist in botan 1.11.11.
Sub package botan:tls doesn't exist in botan 1.11.10.
Sub package botan:tls doesn't exist in botan ~master.
Sub package botan:tls doesn't exist in botan ~merge-new-algos.
Sub package botan:tls doesn't exist in botan ~ldc-compat.
Sub package botan:tls doesn't exist in botan ~fix-tls.
Sub package botan:passhash doesn't exist in botan 1.12.9.
Sub package botan:passhash doesn't exist in botan 1.12.0.
Sub package botan:passhash doesn't exist in botan 1.11.14.
Sub package botan:passhash doesn't exist in botan 1.11.13.
Sub package botan:passhash doesn't exist in botan 1.11.12.
Sub package botan:passhash doesn't exist in botan 1.11.11.
Sub package botan:passhash doesn't exist in botan 1.11.10.
Sub package botan:passhash doesn't exist in botan ~master.
Sub package botan:passhash doesn't exist in botan ~merge-new-algos.
Sub package botan:passhash doesn't exist in botan ~ldc-compat.
Sub package botan:passhash doesn't exist in botan ~fix-tls.
Failed to load path based dependency memutils: No package file found in ../memutils/, expected one of dub.json/dub.sdl/package.json
Search for versions of libev (1 package suppliers)
Return for libev: [5.0.0+4.04, 4.0.0+4.04, ~master]
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:core doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:core doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.32.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.31.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.29.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.28.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.27.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.32-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.32-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.31-rc.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.31-rc.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.31-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.31-beta.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.31-beta.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.31-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-rc.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-beta.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-alpha.5.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-alpha.4.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-alpha.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-alpha.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.30-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.29-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.29-beta.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.29-beta.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.29-alpha.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.29-alpha.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.29-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.28-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.27-rc.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.27-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.27-beta.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.27-alpha.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.27-alpha.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.27-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:stream doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:stream doesn't exist in vibe-d ~test_latest_compilers_on_0.7.
Sub package vibe-d:stream doesn't exist in vibe-d ~merge_0.7_urlrouter.
Sub package vibe-d:stream doesn't exist in vibe-d ~merge_0.7_openssl.
Sub package vibe-d:stream doesn't exist in vibe-d ~merge_0.7_fix_serialization_test.
Sub package vibe-d:stream doesn't exist in vibe-d ~merge_0.7_2050_1951_2112.
Sub package vibe-d:stream doesn't exist in vibe-d ~http2-botan-cleanup.
Sub package vibe-d:stream doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:stream doesn't exist in vibe-d ~0.7.x.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.32.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.31.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.29.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.28.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.27.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-rc.4.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-rc.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-rc.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.8.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.7.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.6.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.5.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.4.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-beta.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.8.0-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.32-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.32-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.31-rc.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.31-rc.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.31-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.31-beta.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.31-beta.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.31-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-rc.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-beta.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-alpha.5.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-alpha.4.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-alpha.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-alpha.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.30-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.29-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.29-beta.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.29-beta.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.29-alpha.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.29-alpha.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.29-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.28-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.27-rc.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.27-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.27-beta.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.27-alpha.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.27-alpha.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.27-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:tls doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:tls doesn't exist in vibe-d ~test_latest_compilers_on_0.7.
Sub package vibe-d:tls doesn't exist in vibe-d ~merge_0.7_urlrouter.
Sub package vibe-d:tls doesn't exist in vibe-d ~merge_0.7_openssl.
Sub package vibe-d:tls doesn't exist in vibe-d ~merge_0.7_fix_serialization_test.
Sub package vibe-d:tls doesn't exist in vibe-d ~merge_0.7_2050_1951_2112.
Sub package vibe-d:tls doesn't exist in vibe-d ~http2-botan-cleanup.
Sub package vibe-d:tls doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:tls doesn't exist in vibe-d ~0.7.x.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.32.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.31.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.29.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.28.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.27.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.23.
Search for versions of mir-linux-kernel (1 package suppliers)
Return for mir-linux-kernel: [1.0.0, 1.0.0-alpha2, 1.0.0-alpha1, ~master]
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.32-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.32-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.31-rc.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.31-rc.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.31-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.31-beta.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.31-beta.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.31-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-rc.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-beta.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-alpha.5.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-alpha.4.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-alpha.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-alpha.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.30-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.29-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.29-beta.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.29-beta.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.29-alpha.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.29-alpha.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.29-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.28-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.27-rc.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.27-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.27-beta.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.27-alpha.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.27-alpha.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.27-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:crypto doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:crypto doesn't exist in vibe-d ~test_latest_compilers_on_0.7.
Sub package vibe-d:crypto doesn't exist in vibe-d ~merge_0.7_urlrouter.
Sub package vibe-d:crypto doesn't exist in vibe-d ~merge_0.7_openssl.
Sub package vibe-d:crypto doesn't exist in vibe-d ~merge_0.7_fix_serialization_test.
Sub package vibe-d:crypto doesn't exist in vibe-d ~merge_0.7_2050_1951_2112.
Sub package vibe-d:crypto doesn't exist in vibe-d ~http2-botan-cleanup.
Sub package vibe-d:crypto doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:crypto doesn't exist in vibe-d ~0.7.x.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.32.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.31.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.29.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.28.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.27.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.32-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.32-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.31-rc.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.31-rc.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.31-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.31-beta.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.31-beta.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.31-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-rc.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-beta.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-alpha.5.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-alpha.4.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-alpha.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-alpha.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.30-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.29-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.29-beta.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.29-beta.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.29-alpha.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.29-alpha.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.29-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.28-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.27-rc.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.27-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.27-beta.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.27-alpha.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.27-alpha.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.27-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:textfilter doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~test_latest_compilers_on_0.7.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~merge_0.7_urlrouter.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~merge_0.7_openssl.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~merge_0.7_fix_serialization_test.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~merge_0.7_2050_1951_2112.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~http2-botan-cleanup.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:textfilter doesn't exist in vibe-d ~0.7.x.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.32.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.31.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.29.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.28.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.27.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.32-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.32-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.31-rc.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.31-rc.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.31-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.31-beta.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.31-beta.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.31-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-rc.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-beta.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-alpha.5.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-alpha.4.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-alpha.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-alpha.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.30-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.29-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.29-beta.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.29-beta.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.29-alpha.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.29-alpha.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.29-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.28-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.27-rc.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.27-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.27-beta.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.27-alpha.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.27-alpha.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.27-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:inet doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:inet doesn't exist in vibe-d ~test_latest_compilers_on_0.7.
Sub package vibe-d:inet doesn't exist in vibe-d ~merge_0.7_urlrouter.
Sub package vibe-d:inet doesn't exist in vibe-d ~merge_0.7_openssl.
Sub package vibe-d:inet doesn't exist in vibe-d ~merge_0.7_fix_serialization_test.
Sub package vibe-d:inet doesn't exist in vibe-d ~merge_0.7_2050_1951_2112.
Sub package vibe-d:inet doesn't exist in vibe-d ~http2-botan-cleanup.
Sub package vibe-d:inet doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:inet doesn't exist in vibe-d ~0.7.x.
Search for versions of diet-ng (1 package suppliers)
Return for diet-ng: [1.4.5, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0, 1.3.0, 1.2.1, 1.2.0, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.3.0, 0.2.1, 0.2.0, 0.1.0, 1.0.0-beta.3, 1.0.0-beta.2, 1.0.0-beta.1, 1.0.0-alpha.2, 1.0.0-alpha.1, ~master, ~dmd_segfault]
External sub package vibe-d:diet 0.8.3 not found.
External sub package vibe-d:diet 0.8.2 not found.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.25.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.24.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.23.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.4-alpha.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.3-rc.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.3-rc.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.3-beta.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.3-alpha.4.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.3-alpha.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.3-alpha.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.3-alpha.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.2-rc.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.2-rc.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.2-alpha.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.2-alpha.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.2-alpha.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-rc.4.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-rc.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-rc.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-rc.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-beta.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-beta.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-alpha.4.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-alpha.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-alpha.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.8.1-alpha.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:http doesn't exist in vibe-d 0.7.23-rc.1.
Search for versions of libhttp2 (1 package suppliers)
Return for libhttp2: [0.2.8, 0.2.7, 0.2.6, 0.2.5, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, ~master]
Sub package vibe-d:http doesn't exist in vibe-d ~http2-botan.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26-rc.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26-rc.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26-rc.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26-beta.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26-alpha.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26-alpha.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.26-alpha.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.25-rc.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.25-alpha.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.24-rc.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.24-rc.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.24-beta.4.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.24-beta.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.24-beta.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.24-beta.1.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.23-rc.4.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.23-rc.3.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.23-rc.2.
Sub package vibe-d:diet doesn't exist in vibe-d 0.7.23-rc.1.
Sub package vibe-d:diet doesn't exist in vibe-d ~master.
Sub package vibe-d:diet doesn't exist in vibe-d ~rest_request_body_filter.
Sub package vibe-d:diet doesn't exist in vibe-d ~issue_1994_json_trailing_comma.
Sub package vibe-d:diet doesn't exist in vibe-d ~http_speedup.
Sub package vibe-d:diet doesn't exist in vibe-d ~http2-botan.
Search for versions of painlessjson (1 package suppliers)
Return for painlessjson: [1.3.8, 1.3.7, 1.3.6, 1.3.5, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.7.0, ~master]
Search for versions of painlesstraits (1 package suppliers)
Return for painlesstraits: [0.3.0, 0.2.0, 0.1.0, 0.0.3, 0.0.2, 0.0.1, ~master]
Search for versions of dunit (1 package suppliers)
Return for dunit: [1.0.14, 1.0.13, 1.0.12, 1.0.11, 1.0.10, 1.0.9, 1.0.8, 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0.0, 1.0.0-beta, ~master]
Search for versions of libddoc (1 package suppliers)
Return for libddoc: [0.2.0, 0.1.0, 0.3.0-beta.1, ~master, ~missing_parameters_fix, ~loop_fix, ~issue-26, ~fix_section_splitter, ~fix-example-code]
Search for versions of workspace-d (1 package suppliers)
Ignoring version specification (>=0.0.0) for path based dependency ../../
Ignoring version specification (>=0.0.0) for path based dependency ../../
Ignoring version specification (>=0.0.0) for path based dependency libdparse
Ignoring version specification (>=0.0.0) for path based dependency ../../
Ignoring version specification (>=0.0.0) for path based dependency ../../
Return for workspace-d: [2.11.0, 2.10.1, 2.10.0, ~master, ~moduleman]
Search for versions of dscanner (1 package suppliers)
Return for dscanner: [0.5.0, 0.4.2, 0.4.1, 0.4.0, 0.3.0, 0.2.0, 0.5.0-rc1, 0.5.0-beta.2, 0.5.0-beta.1, 0.4.2-alpha.1, 0.4.0-beta.6, 0.4.0-beta.5, 0.4.0-beta.4, 0.4.0-beta.3, 0.4.0-beta.2, 0.4.0-beta.1, 0.4.0-alpha6, 0.4.0-alpha5, 0.4.0-alpha4, 0.4.0-alpha3, 0.4.0-alpha2, 0.4.0-alpha1, 0.4.0-alpha.8, 0.4.0-alpha.7, ~master, ~phobos]
Search for versions of dsymbol (1 package suppliers)
Return for dsymbol: [0.3.0, 0.2.9, 0.2.8, 0.2.7, 0.2.6, 0.2.5, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.2, 0.1.1, 0.1.0, 0.3.0-beta.3, 0.3.0-beta.2, 0.3.0-beta.1, 0.2.1-alpha.2, 0.2.1-alpha.1, 0.2.0-beta.2, 0.2.0-beta.1, 0.2.0-alpha7, 0.2.0-alpha6, 0.2.0-alpha5, 0.2.0-alpha4, 0.2.0-alpha3, 0.2.0-alpha2, 0.2.0-alpha1, 0.2.0-alpha.10, 0.2.0-alpha.9, 0.2.0-alpha.8, ~master, ~issue_16]
Search for versions of emsi_containers (1 package suppliers)
Return for emsi_containers: [0.7.0, 0.6.0, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.3, 0.4.2, 0.4.1, 0.4.0, 0.3.0, 0.8.0-alpha.5, 0.8.0-alpha.4, 0.8.0-alpha.3, 0.8.0-alpha.2, 0.8.0-alpha.1, ~master]
Search for versions of experimental_allocator (1 package suppliers)
Return for experimental_allocator: [2.70.0-b1, ~master]
Search for versions of inifiled (1 package suppliers)
Return for inifiled: [1.2.0, 1.1.0, 1.0.2, 1.0.1, 1.0.0, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1, ~master]
Search for versions of dfmt (1 package suppliers)
Return for dfmt: [0.7.0, 0.6.1, 0.6.0, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.5, 0.4.4, 0.4.3, 0.4.2, 0.4.1, 0.4.0, 0.3.5, 0.3.4, 0.3.3, 0.3.2, 0.3.1, 0.3.0, 0.6.0-alpha.1, 0.5.0-beta5, 0.5.0-beta4, 0.5.0-beta3, 0.5.0-beta2, 0.5.0-beta1, 0.5.0-beta.5, 0.5.0-beta.4, 0.5.0-alpha2, 0.5.0-alpha1, ~v0.x.x, ~v0.7.x, ~v0.6.x]
Search for versions of dub (1 package suppliers)
Return for dub: [1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.0, 1.5.0, 1.4.1, 1.4.0, 1.3.0, 1.2.2, 1.2.1, 1.2.0, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.9.25, 0.9.24, 0.9.23, 0.9.22, 0.9.21, 0.9.20, 0.9.19, 1.8.0-rc.1, 1.8.0-beta.2, 1.8.0-beta.1, 1.7.2-beta.1, 1.7.1-beta.1, 1.7.0-rc.1, 1.7.0-beta.1, 1.7.0-alpha.1, 1.6.0-rc.1, 1.6.0-beta.2, 1.6.0-beta.1, 1.5.0-rc.1, 1.5.0-beta.2, 1.5.0-beta.1, 1.4.1-beta.1, 1.4.0-rc.1, 1.4.0-beta.4, 1.4.0-beta.3, 1.4.0-beta.2, 1.4.0-beta.1, 1.3.0-rc.1, 1.3.0-beta.2, 1.3.0-beta.1, 1.2.2-beta.1, 1.2.1-beta.2, 1.2.1-beta.1, 1.2.0-rc.1, 1.2.0-beta.2, 1.2.0-beta.1, 1.1.2-beta.1, 1.1.1-beta.1, 1.1.0-beta.1, 1.0.0-rc.1, 1.0.0-beta.1, 0.9.25-rc.1, 0.9.25-beta.3, 0.9.25-beta.2, 0.9.25-beta.1, 0.9.25-alpha.1, 0.9.24-rc.4, 0.9.24-rc.3, 0.9.24-rc.2, 0.9.24-rc.1, 0.9.24-beta.2, 0.9.24-beta.1, 0.9.23-rc.2, 0.9.23-rc.1, 0.9.23-beta.2, 0.9.23-beta.1, 0.9.22-rc.3, 0.9.22-rc.2, 0.9.22-rc.1, 0.9.22-beta.4, 0.9.22-beta.3, 0.9.22-beta.2, 0.9.22-beta.1, 0.9.21-rc.5, 0.9.21-rc.4, 0.9.21-rc.3, 0.9.21-rc.2, 0.9.21-rc.1, 0.9.21-beta.3, 0.9.21-beta.2, 0.9.21-beta.1, 0.9.20-rc.1, 0.9.20-beta.4, 0.9.20-beta.3, 0.9.20-beta.2, 0.9.20-beta.1, ~master, ~version-interval, ~upgrade_sdlang, ~stable, ~revert-1166-build_options, ~no_library_selections, ~newCTFE, ~issue_422_dependency_sub_configs, ~issue_228_target_triples, ~fix_issue_622, ~extend_system_libs]
Search for versions of standardpaths (1 package suppliers)
Return for standardpaths: [0.8.0, 0.7.1, 0.7.0, 0.6.1, 0.6.0, 0.5.0, 0.4.0, 0.3.1, 0.3.0, 0.2.1, 0.2.0, 0.1.2, 0.1.1, 0.1.0, 0.0.4, 0.0.3, 0.0.2, 0.0.1, 0.0.1-alpha.1, 0.0.1-alpha, ~master]
Search for versions of xdgpaths (1 package suppliers)
Return for xdgpaths: [0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.3, 0.1.2, 0.1.1, 0.1.0, ~master]
Search for versions of isfreedesktop (1 package suppliers)
Return for isfreedesktop: [0.1.1, 0.1.0, ~master]
Search for versions of eventsystem (1 package suppliers)
Return for eventsystem: [1.2.0, 1.1.0, 1.0.1, 1.0.0, ~master]

The dependency resolution process is taking too long. The dependency graph is likely hitting a pathological case in the resolution algorithm. Please file a bug report at https://github.com/dlang/dub/issues and mention the package recipe that reproduces this error.

dub version is .

dub --version
DUB version 1.7.1, built on Jan 21 2018

on debain 8 linux.

Error on shutdown

I'm testing Serve-D in Atom, and on exit Atom complains:
image
Apparently Serve-D sends a response without any result or errorproperty. Given that it happens on shutdown, I thought it was theshutdown` response that was responsible, but it looks like it does send a null response. Could Serve-D actually not be taking the result property into account because it's null ? (I encountered this problem with my language server; VSCode didn't seem to mind it but Atom did)

Apart from this issue, things seem to work smoothly in Atom 👍

Error: link.exe failed with status: 1

> git clone --recursive https://github.com/Pure-D/serve-d.git serve-d
Cloning into 'serve-d'...
> dub upgrade
Upgrading project in C:\Users\Brian\AppData\Roaming\code-d\bin\serve-d
Re-installing branch based dependency workspace-d ~master
Removed package: 'workspace-d'
Fetching workspace-d ~master (getting selected version)...
Fetching libdparse 0.7.2-alpha.6 (getting selected version)...
Fetching diet-ng 1.4.4 (getting selected version)...
Fetching dscanner 0.4.2 (getting selected version)...
> dub build --build=release --compiler=ldc2 --combined
WARNING: A deprecated branch based version specification is used for the dependency workspace-d. Please use numbered versions instead. Also note that you can still use the dub.selections.json file to override a certain dependency to use a branch instead.
Performing "release" build using ldc2 for x86_64.
serve-d ~master: building configuration "application"...
..\..\..\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
..\..\..\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
..\..\..\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(69,34): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
..\..\..\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
..\..\..\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(12,30): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
..\..\..\dub\packages\painlesstraits-0.2.0\painlesstraits\source\painlesstraits.d(69,34): Deprecation: std.traits.Identity(alias A) is not visible from module painlesstraits
Warning: no Visual C++ installation detected

OPTLINK (R) for Win32  Release 8.00.17
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
OPTLINK : Error 8: Illegal Filename 
/NOLOGO /OPT:REF /OPT:ICF /DEFAULTLIB:libcmt /DEFAULTLIB:libvcruntime "/OUT:.dub\build\application-release-windows-x86_64-ldc_2077-E354BE35C17ABBDE1D905839C741AA38\serve-d.exe" ".dub\obj\serve-d.obj" /LIBPATH:D:/Develop/ldc2-1.7.0-windows-x64/bin/../lib phobos2-ldc.lib druntime-ldc.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib 

                                                                       ^
Error: D:\Develop\dmd\windows\bin\link.exe failed with status: 1
ldc2 failed with exit code 1.
Failed to install serve-d (Error code 2)

My compile versions:

PS D:\Projects\hunt> dmd --version
DMD32 D Compiler v2.078.0

Copyright (c) 1999-2017 by The D Language Foundation written by Walter Bright

PS D:\Projects\hunt> ldc2 --version
LDC - the LLVM D compiler (1.7.0):
  based on DMD v2.077.1 and LLVM 5.0.1
  built with LDC - the LLVM D compiler (1.6.0)
  Default target: x86_64-pc-windows-msvc
  Host CPU: haswell
  http://dlang.org - http://wiki.dlang.org/LDC

  Registered Targets:
    aarch64    - AArch64 (little endian)
    aarch64_be - AArch64 (big endian)
    arm        - ARM
    arm64      - ARM64 (little endian)
    armeb      - ARM (big endian)
    nvptx      - NVIDIA PTX 32-bit
    nvptx64    - NVIDIA PTX 64-bit
    ppc32      - PowerPC 32
    ppc64      - PowerPC 64
    ppc64le    - PowerPC 64 LE
    thumb      - Thumb
    thumbeb    - Thumb (big endian)
    x86        - 32-bit X86: Pentium-Pro and above
    x86-64     - 64-bit X86: EM64T and AMD64

Windows - D

Does serve-d actually do anything? For a matter in fact that same question can be asked about code-d?

After trying out both:

Serve-d download and compiles several dependencies. I clearly see something listening and json type requests being send. But there is no functionality beyond basic color syntax.

Code-d downloads and compiles. But one error being: "Dscanner\bin\dscanner.exe" is the correct location, not Dscanner\dscanner.exe as written in the config file. After fixing this, Code-D it's only functionality ( beyond color syntax ) is reporting issues with the code.

Example:

message: 'Public declaration 'receiveBufferLength' is undocumented.'

But it does not show any function hinting, function/variable documentation or anything beyond that.

I mention this almost half a year ago and coming back it seems that issues with code-d and serve-d on Windows are still unsolved.

System:

Windows 10
DMD32 D Compiler v2.078.1
DUB version 1.7.1, built on Jan 21 2018
LDC - the LLVM D compiler (1.7.0):
based on DMD v2.077.1 and LLVM 5.0.1
built with LDC - the LLVM D compiler (1.6.0)
Default target: x86_64-pc-windows-msvc
Host CPU: znver1

Does not work if d.dubBuildType is set

Arch/Manjaro 64-bit, vscode is 1.19.2-1 from aur/code.

If I set d.dubBuildType, for instance to "plain", serve-d will stop working.

2018-01-12T00:21:38.795:app.d:__lambda11:248 Processing as notification
2018-01-12T00:21:38.795:app.d:__lambda11:253 Failed processing notification: std.json.JSONException@std/json.d(260): JSONValue is not an object
----------------
??:? pure @safe void std.exception.bailOut!(std.json.JSONException).bailOut(immutable(char)[], ulong, const(char[])) [0x38cd7f43]
??:? pure @safe bool std.exception.enforce!(std.json.JSONException, bool).enforce(bool, lazy const(char)[], immutable(char)[], ulong) [0x38cd7ebd]
??:? inout pure @property @trusted inout(std.json.JSONValue[immutable(char)[]]) std.json.JSONValue.objectNoRef() [0x38c7ab35]
??:? const pure @safe const(std.json.JSONValue)* std.json.JSONValue.opBinaryRight!("in").opBinaryRight(immutable(char)[]) [0x388c572f]
??:? bool workspaced.com.dub.setBuildType(std.json.JSONValue) [0x3897dae0]
??:? void served.extension.changedConfig(immutable(char)[][]) [0x388e8988]
??:? void app.processNotify(served.protocol.RequestMessage) [0x388777c7]
??:? void app.main(immutable(char)[][]).__lambda11() [0x38878e5c]
??:? void core.thread.Fiber.run() [0x38cbbb97]
??:? fiber_entryPoint [0x38cbba66]
??:? [0xffffffff]

Hovering over something only makes it say "DCD isn't initialized yet" in the output console.

2018-01-12T00:22:01.500:app.d:__lambda10:234 Responding with: ResponseMessage(7, null, const(ResponseError)(serverNotInitialized, "DCD isn't initialized yet", null))
{"code":-32002,"data":null,"message":"DCD isn't initialized yet"}
2018-01-12T00:22:01.500:jsonrpc.d:send:66 {"error":{"code":-32002,"data":null,"message":"DCD isn't initialized yet"},"id":7,"jsonrpc":"2.0"}
[Error - 00:22:01] Request textDocument/hover failed.
  Message: DCD isn't initialized yet
  Code: -32002 

Removing the d.dubBuildType setting makes it work again.

Attaching the full log: serve-d.log

Command: make foreach parallel

Just puts parallel from std.parallelism on the range part of the foreach.

Part of the feature set which should get people who are new to D into phobos better

Absolutely no response on intellisense

I have a project with vibe-d dependency and serve-d 0.17.5 doesn't display anything other than "Loading..." (screenshot) when attempting to type for example, a function call or press ctrl+space. Attempting to F12 a symbol, forever displays a marquee progress bar below the open file bar.

code_2017-11-28_00-55-50

Log:

2017-11-27T15:41:02.874:source\app.d:main:201 Features fulfilled
2017-11-27T15:41:02.874:source\app.d:main:205 Started reading from stdin
2017-11-27T15:41:02.874:source\app.d:main:209 RPC started
2017-11-27T15:41:02.886:source\app.d:main:220 Has Message
2017-11-27T15:41:02.886:source\app.d:main:222 Message: RequestMessage(0, "initialize", {"capabilities":{"textDocument":{"codeAction":{"dynamicRegistration":true},"codeLens":{"dynamicRegistration":true},"completion":{"completionItem":{"snippetSupport":true},"dynamicRegistration":true},"definition":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentLink":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"hover":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true},"signatureHelp":{"dynamicRegistration":true},"synchronization":{"didSave":true,"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true}},"workspace":{"applyEdit":true,"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true},"executeCommand":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true},"workspaceEdit":{"documentChanges":true}}},"processId":6868,"rootPath":"c:\\Users\\User\\proj\\Project","rootUri":"file:\/\/\/c%3A\/Users\/User\/proj\/Project","trace":"off"})
2017-11-27T15:41:02.897:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:02.897:source\app.d:processRequest:50 Initializing
2017-11-27T15:41:02.897:source\served\extension.d:initialize:139 Initializing serve-d for c:\Users\User\proj\Project
2017-11-27T15:41:02.897:source\served\extension.d:initialize:152 Starting dub...
2017-11-27T15:41:05.927:source\served\extension.d:setTimeout:1610 Setting timeout for 50 ms
2017-11-27T15:41:05.927:source\served\extension.d:initialize:189 Starting dscanner
2017-11-27T15:41:05.927:source\served\extension.d:initialize:192 Starting dfmt
2017-11-27T15:41:05.927:source\served\extension.d:initialize:194 Starting dlangui
2017-11-27T15:41:05.927:source\served\extension.d:initialize:196 Starting importer
2017-11-27T15:41:05.927:source\served\extension.d:initialize:198 Starting moduleman
2017-11-27T15:41:05.927:source\app.d:processRequest:52 Initialized
2017-11-27T15:41:05.927:source\app.d:__lambda10:230 Responding with: ResponseMessage(0, {"capabilities":{"codeActionProvider":true,"codeLensProvider":null,"completionProvider":{"resolveProvider":false,"triggerCharacters":[".","(","[","="]},"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":false,"documentLinkProvider":null,"documentOnTypeFormattingProvider":null,"documentRangeFormattingProvider":false,"documentSymbolProvider":true,"executeCommandProvider":null,"experimental":null,"hoverProvider":true,"referencesProvider":false,"renameProvider":false,"signatureHelpProvider":{"triggerCharacters":["(","[",","]},"textDocumentSync":2,"workspaceSymbolProvider":true}}, null(ResponseError))
2017-11-27T15:41:05.927:source\served\jsonrpc.d:send:66 {"id":0,"jsonrpc":"2.0","result":{"capabilities":{"codeActionProvider":true,"codeLensProvider":null,"completionProvider":{"resolveProvider":false,"triggerCharacters":[".","(","[","="]},"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":false,"documentLinkProvider":null,"documentOnTypeFormattingProvider":null,"documentRangeFormattingProvider":false,"documentSymbolProvider":true,"executeCommandProvider":null,"experimental":null,"hoverProvider":true,"referencesProvider":false,"renameProvider":false,"signatureHelpProvider":{"triggerCharacters":["(","[",","]},"textDocumentSync":2,"workspaceSymbolProvider":true}}}
2017-11-27T15:41:05.938:source\app.d:main:220 Has Message
2017-11-27T15:41:05.938:source\app.d:main:222 Message: RequestMessage(none, "initialized", {})
2017-11-27T15:41:05.949:source\app.d:__lambda11:244 Processing as notification
2017-11-27T15:41:05.949:source\app.d:main:220 Has Message
2017-11-27T15:41:05.949:source\app.d:main:222 Message: RequestMessage(none, "$/setTraceNotification", {"value":"off"})
2017-11-27T15:41:05.961:source\app.d:__lambda11:244 Processing as notification
2017-11-27T15:41:05.961:source\app.d:main:220 Has Message
2017-11-27T15:41:05.961:source\app.d:main:222 Message: RequestMessage(none, "workspace/didChangeConfiguration", {"settings":{"d":{"aggressiveUpdate":true,"dcdClientPath":"C:\\Users\\User\\AppData\\Roaming\\code-d\\bin\\DCD\\dcd-client.exe","dcdServerPath":"C:\\Users\\User\\AppData\\Roaming\\code-d\\bin\\DCD\\dcd-server.exe","dfmtPath":"C:\\Users\\User\\.vscode\\extensions\\webfreak.code-d-0.16.2\\bin\\dfmt\\bin\\dfmt.exe","dscannerPath":"C:\\Users\\User\\.vscode\\extensions\\webfreak.code-d-0.16.2\\bin\\Dscanner\\bin\\dscanner.exe","dubArchType":"","dubBuildType":"","dubCompiler":"","dubConfiguration":"","dubPath":"C:\\D\\dmd2\\windows\\bin\\dub.exe","enableAutoComplete":true,"enableDubLinting":true,"enableFormatting":true,"enableLinting":true,"enableSDLLinting":true,"enableStaticLinting":true,"neverUseDub":false,"overrideDfmtEditorconfig":true,"projectImportPaths":[],"servedPath":"C:\\Users\\User\\AppData\\Roaming\\code-d\\bin\\serve-d\\serve-d.exe","stdlibPath":null,"workspacedPath":"C:\\Users\\User\\.vscode\\extensions\\webfreak.code-d-0.16.2\\bin\\workspace-d.exe"},"dfmt":{"alignSwitchStatements":true,"braceStyle":"allman","compactLabeledStatements":true,"outdentAttributes":true,"selectiveImportSpace":true,"spaceAfterCast":true,"splitOperatorAtLineEnd":false,"templateConstraintStyle":"conditional_newline_indent"},"editor":{"acceptSuggestionOnCommitCharacter":true,"acceptSuggestionOnEnter":"on","accessibilitySupport":"auto","autoClosingBrackets":true,"autoIndent":true,"codeLens":true,"colorDecorators":true,"cursorBlinking":"blink","cursorStyle":"line","detectIndentation":false,"dragAndDrop":true,"emptySelectionClipboard":true,"find":{"autoFindInSelection":false,"seedSearchStringFromSelection":true},"folding":true,"fontFamily":"Consolas, 'Courier New', monospace","fontLigatures":false,"fontSize":14,"fontWeight":"normal","formatOnPaste":false,"formatOnSave":false,"formatOnType":false,"glyphMargin":true,"hideCursorInOverviewRuler":false,"insertSpaces":false,"letterSpacing":0,"lightbulb":{"enabled":true},"lineHeight":0,"lineNumbers":"on","links":true,"matchBrackets":true,"minimap":{"enabled":true,"maxColumn":120,"renderCharacters":true,"showSlider":"mouseover"},"mouseWheelScrollSensitivity":1,"mouseWheelZoom":false,"multiCursorModifier":"alt","occurrencesHighlight":true,"overviewRulerBorder":true,"overviewRulerLanes":3,"parameterHints":true,"quickSuggestions":{"comments":false,"other":true,"strings":false},"quickSuggestionsDelay":10,"renderControlCharacters":false,"renderIndentGuides":true,"renderLineHighlight":"line","renderWhitespace":"none","roundedSelection":true,"rulers":[],"scrollBeyondLastLine":true,"selectionHighlight":true,"showFoldingControls":"mouseover","smoothScrolling":false,"snippetSuggestions":"inline","stablePeek":false,"suggestFontSize":0,"suggestLineHeight":0,"suggestOnTriggerCharacters":true,"tabCompletion":false,"tabSize":4,"tokenColorCustomizations":{},"trimAutoWhitespace":true,"useTabStops":true,"wordBasedSuggestions":true,"wordSeparators":"`~!@#$%^&*()-=+[{]}\\|;:'\",.<>\/?","wordWrap":"off","wordWrapColumn":80,"wrappingIndent":"same"},"git":{"autofetch":true,"autorefresh":true,"checkoutType":"all","confirmSync":true,"countBadge":"all","decorations":{"enabled":true},"defaultCloneDirectory":null,"enableCommitSigning":false,"enableSmartCommit":false,"enabled":true,"ignoreLegacyWarning":false,"ignoreLimitWarning":false,"path":null}}})
2017-11-27T15:41:05.972:source\app.d:__lambda11:244 Processing as notification
2017-11-27T15:41:05.972:source\served\extension.d:configNotify:213 Received configuration
2017-11-27T15:41:06.048:source\app.d:main:220 Has Message
2017-11-27T15:41:06.048:source\app.d:main:222 Message: RequestMessage(none, "textDocument/didOpen", {"textDocument":{"languageId":"d","text":"<...>","uri":"file:\/\/\/c%3A\/Users\/User\/proj\/Project\/source\/app.d","version":2}})
2017-11-27T15:41:06.060:source\served\jsonrpc.d:send:66 {"jsonrpc":"2.0","method":"coded/initDubTree"}
2017-11-27T15:41:06.060:source\served\extension.d:parallelMain:1671 Calling timeout
2017-11-27T15:41:06.060:source\app.d:__lambda11:244 Processing as notification
2017-11-27T15:41:06.060:source\served\extension.d:onDidOpenDocument:1293 ["file:///c%3A/Users/User/proj/Project/source/app.d":FileOpenInfo(2017-Nov-27 15:41:06.0600208)]
2017-11-27T15:41:06.060:source\app.d:main:220 Has Message
2017-11-27T15:41:06.060:source\app.d:main:222 Message: RequestMessage(1, "served/getConfig", null)
2017-11-27T15:41:06.071:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:06.071:source\app.d:processRequest:77 Calling getConfig
2017-11-27T15:41:06.071:source\app.d:__lambda10:230 Responding with: ResponseMessage(1, "application", null(ResponseError))
2017-11-27T15:41:06.071:source\served\jsonrpc.d:send:66 {"id":1,"jsonrpc":"2.0","result":"application"}
2017-11-27T15:41:06.071:source\app.d:main:220 Has Message
2017-11-27T15:41:06.071:source\app.d:main:222 Message: RequestMessage(2, "served/getArchType", null)
2017-11-27T15:41:06.082:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:06.082:source\app.d:processRequest:77 Calling getArchType
2017-11-27T15:41:06.082:source\app.d:__lambda10:230 Responding with: ResponseMessage(2, "x86_64", null(ResponseError))
2017-11-27T15:41:06.082:source\served\jsonrpc.d:send:66 {"id":2,"jsonrpc":"2.0","result":"x86_64"}
2017-11-27T15:41:06.082:source\app.d:main:220 Has Message
2017-11-27T15:41:06.082:source\app.d:main:222 Message: RequestMessage(3, "served/getBuildType", null)
2017-11-27T15:41:06.093:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:06.093:source\app.d:processRequest:77 Calling getBuildType
2017-11-27T15:41:06.093:source\app.d:__lambda10:230 Responding with: ResponseMessage(3, "debug", null(ResponseError))
2017-11-27T15:41:06.093:source\served\jsonrpc.d:send:66 {"id":3,"jsonrpc":"2.0","result":"debug"}
2017-11-27T15:41:06.093:source\app.d:main:220 Has Message
2017-11-27T15:41:06.093:source\app.d:main:222 Message: RequestMessage(4, "served/getCompiler", null)
2017-11-27T15:41:06.104:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:06.104:source\app.d:processRequest:77 Calling getCompiler
2017-11-27T15:41:06.104:source\app.d:__lambda10:230 Responding with: ResponseMessage(4, "dmd", null(ResponseError))
2017-11-27T15:41:06.104:source\served\jsonrpc.d:send:66 {"id":4,"jsonrpc":"2.0","result":"dmd"}
2017-11-27T15:41:06.104:source\app.d:main:220 Has Message
2017-11-27T15:41:06.104:source\app.d:main:222 Message: RequestMessage(5, "textDocument/codeAction", {"context":{"diagnostics":[]},"range":{"end":{"character":25,"line":17},"start":{"character":25,"line":17}},"textDocument":{"uri":"file:\/\/\/c%3A\/Users\/User\/proj\/Project\/source\/app.d"}})
2017-11-27T15:41:06.115:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:06.115:source\app.d:processRequest:77 Calling provideCodeActions
2017-11-27T15:41:06.115:source\app.d:__lambda10:230 Responding with: ResponseMessage(5, [], null(ResponseError))
2017-11-27T15:41:06.115:source\served\jsonrpc.d:send:66 {"id":5,"jsonrpc":"2.0","result":[]}
2017-11-27T15:41:06.115:source\app.d:main:220 Has Message
2017-11-27T15:41:06.115:source\app.d:main:222 Message: RequestMessage(6, "served/listDependencies", "")
2017-11-27T15:41:06.125:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:06.125:source\app.d:processRequest:77 Calling listDependencies
2017-11-27T15:41:06.125:source\app.d:__lambda10:230 Responding with: ResponseMessage(6, [{"authors":["Sönke Ludwig","Jan Krüger","Matthias Dondorff","see github for more"],"copyright":"Copyright © 2012-2016 rejectedsoftware e.K.","description":"Event driven web and concurrency framework","hasDependencies":true,"homepage":"http:\/\/vibed.org\/","license":"MIT","name":"vibe-d","path":"C:\/Users\/User\/AppData\/Roaming\/dub\/packages\/vibe-d-0.7.32\/vibe-d\/","root":true,"subPackages":[],"version":"0.7.32"}], null(ResponseError))
2017-11-27T15:41:06.125:source\served\jsonrpc.d:send:66 {"id":6,"jsonrpc":"2.0","result":[{"authors":["Sönke Ludwig","Jan Krüger","Matthias Dondorff","see github for more"],"copyright":"Copyright © 2012-2016 rejectedsoftware e.K.","description":"Event driven web and concurrency framework","hasDependencies":true,"homepage":"http://vibed.org/","license":"MIT","name":"vibe-d","path":"C:/Users/User/AppData/Roaming/dub/packages/vibe-d-0.7.32/vibe-d/","root":true,"subPackages":[],"version":"0.7.32"}]}
2017-11-27T15:41:06.277:source\app.d:main:220 Has Message
2017-11-27T15:41:06.277:source\app.d:main:222 Message: RequestMessage(none, "workspace/didChangeWatchedFiles", {"changes":[{"type":2,"uri":"file:\/\/\/c%3A\/Users\/User\/proj\/Project\/source\/app.d"}]})
2017-11-27T15:41:06.288:source\app.d:__lambda11:244 Processing as notification
2017-11-27T15:41:06.288:source\served\extension.d:onChangeFiles:1255 DidChangeWatchedFilesParams([FileEvent("file:///c%3A/Users/User/proj/Project/source/app.d", changed)])
2017-11-27T15:41:06.748:source\app.d:main:220 Has Message
2017-11-27T15:41:06.748:source\app.d:main:222 Message: RequestMessage(7, "textDocument/hover", {"position":{"character":27,"line":17},"textDocument":{"uri":"file:\/\/\/c%3A\/Users\/User\/proj\/Project\/source\/app.d"}})
2017-11-27T15:41:06.759:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:06.759:source\app.d:processRequest:77 Calling provideHover
2017-11-27T15:41:06.920:source\app.d:main:220 Has Message
2017-11-27T15:41:06.920:source\app.d:main:222 Message: RequestMessage(none, "$/cancelRequest", {"id":7})
2017-11-27T15:41:06.930:source\app.d:__lambda11:244 Processing as notification
2017-11-27T15:41:07.071:source\app.d:main:220 Has Message
2017-11-27T15:41:07.071:source\app.d:main:222 Message: RequestMessage(8, "textDocument/hover", {"position":{"character":27,"line":17},"textDocument":{"uri":"file:\/\/\/c%3A\/Users\/User\/proj\/Project\/source\/app.d"}})
2017-11-27T15:41:07.082:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:07.082:source\app.d:processRequest:77 Calling provideHover
2017-11-27T15:41:07.114:source\app.d:main:220 Has Message
2017-11-27T15:41:07.114:source\app.d:main:222 Message: RequestMessage(none, "$/cancelRequest", {"id":8})
2017-11-27T15:41:07.125:source\app.d:__lambda11:244 Processing as notification
2017-11-27T15:41:07.264:source\app.d:main:220 Has Message
2017-11-27T15:41:07.264:source\app.d:main:222 Message: RequestMessage(9, "textDocument/hover", {"position":{"character":26,"line":17},"textDocument":{"uri":"file:\/\/\/c%3A\/Users\/User\/proj\/Project\/source\/app.d"}})
2017-11-27T15:41:07.275:source\app.d:__lambda10:228 Processing as request
2017-11-27T15:41:07.275:source\app.d:processRequest:77 Calling provideHover
2017-11-27T15:41:08.624:source\app.d:main:220 Has Message
2017-11-27T15:41:08.624:source\app.d:main:222 Message: RequestMessage(none, "$/cancelRequest", {"id":9})
2017-11-27T15:41:08.634:source\app.d:__lambda11:244 Processing as notification
Server: 2017-11-27T15:41:19.647:src\dcd\server\main.d:main:122 Starting up...


Server: 2017-11-27T15:41:19.648:src\dcd\server\main.d:main:135 Listening on port 9166


Server: 2017-11-27T15:41:21.566:..\..\..\dub\packages\dsymbol-0.2.9\dsymbol\src\dsymbol\conversion\first.d:visit:411 Could not resolve location of module 'gcc\builtins'


Server: 2017-11-27T15:41:25.407:..\..\..\dub\packages\dsymbol-0.2.9\dsymbol\src\dsymbol\conversion\first.d:visit:411 Could not resolve location of module 'ldc\intrinsics'


serve-d on windows 10 crashes

I just compiled serve-d using ldc2 on windows 10 using below dub cmd:

dub build --build=release --compiler=ldc2 --force

And after running vs code, I got the following error :

std.getopt.GetOptException@C:\D\ldc2-1.6.0-win64-msvc\bin..\import\std\getopt.d(789): Unrecognized option --lang

0x00007FF78EA895DD
0x00007FF78EA89336
0x00007FF78EA87E7C
0x00007FF78EA709E1
0x00007FF78E883002
0x00007FF78E88280F
0x00007FF78E881E95
0x00007FF78E878FAF
0x00007FF78EA77665
0x00007FF78EA91719
0x00007FFAA9C81FE4 in BaseThreadInitThunk
0x00007FFAAAECEF91 in RtlUserThreadStart
[Info - 22:49:03] Connection to server got closed. Server will restart.

std.getopt.GetOptException@C:\D\ldc2-1.6.0-win64-msvc\bin..\import\std\getopt.d(789): Unrecognized option --lang

0x00007FF78EA895DD
0x00007FF78EA89336
0x00007FF78EA87E7C
0x00007FF78EA709E1
0x00007FF78E883002
0x00007FF78E88280F
0x00007FF78E881E95
0x00007FF78E878FAF
0x00007FF78EA77665
0x00007FF78EA91719
0x00007FFAA9C81FE4 in BaseThreadInitThunk
0x00007FFAAAECEF91 in RtlUserThreadStart
[Info - 22:49:03] Connection to server got closed. Server will restart.

std.getopt.GetOptException@C:\D\ldc2-1.6.0-win64-msvc\bin..\import\std\getopt.d(789): Unrecognized option --lang

0x00007FF78EA895DD
0x00007FF78EA89336
0x00007FF78EA87E7C
0x00007FF78EA709E1
0x00007FF78E883002
0x00007FF78E88280F
0x00007FF78E881E95
0x00007FF78E878FAF
0x00007FF78EA77665
0x00007FF78EA91719
0x00007FFAA9C81FE4 in BaseThreadInitThunk
0x00007FFAAAECEF91 in RtlUserThreadStart
[Info - 22:49:04] Connection to server got closed. Server will restart.

std.getopt.GetOptException@C:\D\ldc2-1.6.0-win64-msvc\bin..\import\std\getopt.d(789): Unrecognized option --lang

0x00007FF78EA895DD
0x00007FF78EA89336
0x00007FF78EA87E7C
0x00007FF78EA709E1
0x00007FF78E883002
0x00007FF78E88280F
0x00007FF78E881E95
0x00007FF78E878FAF
0x00007FF78EA77665
0x00007FF78EA91719
0x00007FFAA9C81FE4 in BaseThreadInitThunk
0x00007FFAAAECEF91 in RtlUserThreadStart
[Info - 22:49:05] Connection to server got closed. Server will restart.

std.getopt.GetOptException@C:\D\ldc2-1.6.0-win64-msvc\bin..\import\std\getopt.d(789): Unrecognized option --lang

0x00007FF78EA895DD
0x00007FF78EA89336
0x00007FF78EA87E7C
0x00007FF78EA709E1
0x00007FF78E883002
0x00007FF78E88280F
0x00007FF78E881E95
0x00007FF78E878FAF
0x00007FF78EA77665
0x00007FF78EA91719
0x00007FFAA9C81FE4 in BaseThreadInitThunk
0x00007FFAAAECEF91 in RtlUserThreadStart
[Error - 22:49:05] Connection to server got closed. Server will not be restarted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.