microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.65k stars 28.67k forks source link

Intellisense suddenly stopped to work after vscode-insiders update #12511

Closed hoisel closed 7 years ago

hoisel commented 7 years ago

VSCode Version: Version 1.6.0-insider Commit d81ee41c51cae93a5cac967e42a28660a3a7e005 Date 2016-09-23T05:58:22.484Z Shell 1.3.5 Renderer 52.0.2743.82 Node 6.3.0

OS Version: Ubuntu 16.04 LTS

Intellisense suddenly stopped to work after vscode-insiders update.

Workspace settings:

{
    "editor.fontFamily": "Fira Code",
    "editor.fontSize": 14,
    "editor.fontLigatures": true,
    "eslint.enable": true,
    "typescript.tsdk": "node_modules/typescript/lib",
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true,
        "**/jspm_packages": true,
        "www": true
    },
    "typescript.tsserver.trace": "verbose"
}

Project typescript version: 2.0.3

Trace output log

[Trace - 9:13:04 AM] Sending request: open (10). Response expected: no. Current queue length: 0
Arguments: {
    "file": "/home/hoisel/Github/es-na-palma-da-mao-mobile/src/components/shared/run.ts",
    "fileContent": "import moment from 'moment';\nimport 'moment/locale/pt-br';\nimport { Keyboard } from 'ionic-native';\nimport { AuthenticationService } from './authentication/index';\nimport { HttpSnifferService, HttpErrorSnifferService } from './http/index';\nimport { IWindowService } from 'angular';\nimport { ISettings } from './settings/index';\nimport { CordovaPermissions } from './permissions/index';\nimport { Route, statesJson } from './routes/index';\n\n/**\n * Executado quando aplicação inicia para configurar execução da app, como navegação, etc\n * \n * @param {*} $rootScope\n * @param {IWindowService} $window\n * @param {angular.ui.IStateService} $state\n * @param {ionic.platform.IonicPlatformService} $ionicPlatform\n * @param {angular.material.IDialogService} $mdDialog\n * @param {any} $mdBottomSheet\n * @param {HttpSnifferService} httpSnifferService\n * @param {ISettings} settings\n */\nfunction run( $rootScope: any,\n    $window: IWindowService,\n    $state: angular.ui.IStateService,\n    $ionicPlatform: ionic.platform.IonicPlatformService,\n    $mdDialog: angular.material.IDialogService,\n    $mdBottomSheet,\n    authenticationService: AuthenticationService,\n    httpSnifferService: HttpSnifferService,\n    httpErrorSnifferService: HttpErrorSnifferService,\n    settings: ISettings,\n    cordovaPermissions: CordovaPermissions,\n    $cordovaKeyboard: Keyboard ) {\n\n    // configura locale do moment\n    moment.locale( settings.locale );\n\n    /**\n     * \n     */\n    function buildMenuFromRoutes() {\n        const menu: { items: Route[], groups: any } = {\n            items: statesJson.filter(( s: Route ) => s.menu ),\n            groups: {}\n        };\n        menu.items.forEach( item => {\n            let groupName = item.group || 'Principal';\n            menu.groups[ groupName ] = menu.groups[ groupName ] || [];\n            menu.groups[ groupName ].push( item );\n        });\n\n        return menu;\n    }\n\n    /**\n     * Preenche o $rootScope\n     *\n     * @returns {void}\n     */\n    function initialRootScope() {\n        $rootScope.menu = buildMenuFromRoutes();\n        $rootScope.moment = moment;\n        $rootScope.$state = $state;\n        $rootScope.isAndroid = ionic.Platform.isAndroid();  // Check platform of running device is android or not.\n        $rootScope.isIOS = ionic.Platform.isIOS();          // Check platform of running device is ios or not.\n\n        $rootScope.httpSnifferService = httpSnifferService;\n        $rootScope.httpErrorSnifferService = httpErrorSnifferService;\n        $rootScope.uiState = {\n            loading: false,\n            pendingRequests: 0,\n            error: undefined\n        };\n\n        // We can now watch the trafficCop service to see when there are pending\n        // HTTP requests that we're waiting for.\n        $rootScope.$watch(() => {\n            $rootScope.uiState.pendingRequests = httpSnifferService.pending.all;\n            $rootScope.uiState.loading = $rootScope.uiState.pendingRequests > 0;\n            $rootScope.uiState.error = httpErrorSnifferService.error;\n        });\n    }\n\n    /**\n     * Para android: esconde controles Action e Dialog se o usuário clica no botão voltar do\n     * dispositivo.\n     *\n     * @returns {void}\n     */\n    function hideActionControl() {\n        $mdBottomSheet.cancel();\n        $mdDialog.cancel();\n    }\n\n\n    $ionicPlatform.ready(() => {\n        ionic.Platform.isFullScreen = true;\n\n        $cordovaKeyboard.hideKeyboardAccessoryBar( true );\n        $cordovaKeyboard.disableScroll( true );\n\n        initialRootScope();\n\n        $rootScope.$on( '$ionicView.beforeEnter', () => {\n            hideActionControl();\n            httpErrorSnifferService.error = undefined; // limpa errors quando muda de tela\n        });\n\n        if ( $window.navigator.splashscreen ) {\n            $window.navigator.splashscreen.hide();\n        }\n\n        // Check coarse location permissions\n        cordovaPermissions.RequestCoarseLocationPermission();\n\n        authenticationService.refreshTokenIfNeeded()\n            .then(() => {\n                $state.go( 'app.dashboard.newsHighlights' );\n            })\n            .catch(() => {\n                authenticationService.signOut(() => $state.go( 'home' ) );\n            });\n\n        if ( $window.navigator.splashscreen ) {\n            $window.navigator.splashscreen.hide();\n        }\n    });\n\n    $ionicPlatform.on( 'resume', () => {\n        if ( authenticationService.isAuthenticated ) {\n            authenticationService.refreshTokenIfNeeded()\n                .catch(() => authenticationService.signOut(() => $state.go( 'home' ) ) );\n        }\n    });\n}\n\nrun.$inject = [\n    '$rootScope',\n    '$window',\n    '$state',\n    '$ionicPlatform',\n    '$mdDialog',\n    '$mdBottomSheet',\n    'authenticationService',\n    'httpSnifferService',\n    'httpErrorSnifferService',\n    'settings',\n    'cordovaPermissions',\n    '$cordovaKeyboard'\n];\n\nexport default run;\n\n"
}
[Trace - 9:13:04 AM] Sending request: geterr (11). Response expected: no. Current queue length: 0
Arguments: {
    "delay": 0,
    "files": [
        "/home/hoisel/Github/es-na-palma-da-mao-mobile/src/components/shared/run.ts"
    ]
}
dbaeumer commented 7 years ago

@hoisel there was an issue with the Electron update we did (basically fs.realpath returns a different value which caused confusion with VS Code communicating with the tsserver). I fixed this in the latest insider that got released this morning. Could you check if you still see the issue. If yes, could you share a repository that reproduces the problem.

chrmarti commented 7 years ago

@dbaeumer Could you share the commit? We are using realpath in file search too.

dbaeumer commented 7 years ago

@chrmarti no need to do anything here. @bpasero upgraded Electron yesterday to a newer version which includes a newer node version. This node version reverted the realpath behavior back to its original behavior.

RobertoMalatesta commented 7 years ago

Intellisense is still broken on 1.6: Platform: Kubuntu 14.04 VSC: last nightly: code-insider-1.6.0-1475129007_amd64.tar.gz:

I have a continous build set up (^-SHIFT-B) and if I introduce an error line in correct code 1.5 correctly signals the errors: no_error_15

On the other hand, 1.6 doesn't: no_error_17

If I go to the output window of 1.6 the tsd is spitting out errors, but VSC does not report them: no_error_16

This is a sporadic error I noticed on 1.5 as well, but on 1.5 I get over it by stopping the tsc + closing all open files and reopening them. On 1.6 even this workaround is definitely off.

Thank you for your time. --R

dbaeumer commented 7 years ago

@RobertoMalatesta we upgraded Electron (again) to overcome the realpath issue (actually node reverted back to the original behavior so we decided to do the same). However this required another adoption round on the TS end which went into tonights Insider build

I tested this with the latest inside from tonight and it works for me in my play example

capture

If you still see this in that build could you share your workspace so that I can try to reproduce this.

RobertoMalatesta commented 7 years ago

Sure, @dbaeumer but the published download link still points to commit 6746e53a611ecb3e0777fca6a4c8387dc392513f, not yet the ...59777 I see in your pic. -R

dbaeumer commented 7 years ago

@RobertoMalatesta that one 6746e53a611ecb3e0777fca6a4c8387dc392513f contains the fix as well. The one I use is only available for Windows. Sorry for that

RobertoMalatesta commented 7 years ago

No problem. That's the VSC: last nightly: code-insider-1.6.0-1475129007_amd64.tar.gz download I did this morning and that I made the screenshot I posted. So the issue is still there.

dbaeumer commented 7 years ago

@RobertoMalatesta can you share your workspace ?

RobertoMalatesta commented 7 years ago

Sure: here's the default:

// Overwrite settings by placing them into your settings file.
// See http://go.microsoft.com/fwlink/?LinkId=808995 for the most commonly used settings.
{

// Editor

    // Controls the font family.
    "editor.fontFamily": "'Droid Sans Mono', 'Courier New', monospace, 'Droid Sans Fallback'",

    // Controls the font weight.
    "editor.fontWeight": "normal",

    // Controls the font size in pixels.
    "editor.fontSize": 14,

    // Controls the line height. Use 0 to compute the lineHeight from the fontSize.
    "editor.lineHeight": 0,

    // Controls visibility of line numbers
    "editor.lineNumbers": "on",

    // Columns at which to show vertical rulers
    "editor.rulers": [],

    // Characters that will be used as word separators when doing word related navigations or operations
    "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?",

    // The number of spaces a tab is equal to. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
    "editor.tabSize": 4,

    // Insert spaces when pressing Tab. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
    "editor.insertSpaces": true,

    // When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.
    "editor.detectIndentation": true,

    // Controls if selections have rounded corners
    "editor.roundedSelection": true,

    // Controls if the editor will scroll beyond the last line
    "editor.scrollBeyondLastLine": true,

    // Controls after how many characters the editor will wrap to the next line. Setting this to 0 turns on viewport width wrapping (word wrapping). Setting this to -1 forces the editor to never wrap.
    "editor.wrappingColumn": 300,

    // Controls if lines should wrap. The lines will wrap at min(editor.wrappingColumn, viewportWidthInColumns).
    "editor.wordWrap": false,

    // Controls the indentation of wrapped lines. Can be one of 'none', 'same' or 'indent'.
    "editor.wrappingIndent": "same",

    // A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events
    "editor.mouseWheelScrollSensitivity": 1,

    // Controls if quick suggestions should show up or not while typing
    "editor.quickSuggestions": true,

    // Controls the delay in ms after which quick suggestions will show up
    "editor.quickSuggestionsDelay": 10,

    // Enables parameter hints
    "editor.parameterHints": true,

    // Controls if the editor should automatically close brackets after opening them
    "editor.autoClosingBrackets": true,

    // Controls if the editor should automatically format the line after typing
    "editor.formatOnType": false,

    // Controls if suggestions should automatically show up when typing trigger characters
    "editor.suggestOnTriggerCharacters": true,

    // Controls if suggestions should be accepted 'Enter' - in addition to 'Tab'. Helps to avoid ambiguity between inserting new lines or accepting suggestions.
    "editor.acceptSuggestionOnEnter": true,

    // Controls whether snippets are shown with other suggestions and how they are sorted.
    "editor.snippetSuggestions": "bottom",

    // Enable word based suggestions.
    "editor.wordBasedSuggestions": true,

    // Insert snippets when their prefix matches. Works best when 'quickSuggestions' aren't enabled.
    "editor.tabCompletion": false,

    // Controls whether the editor should highlight similar matches to the selection
    "editor.selectionHighlight": true,

    // Controls the number of decorations that can show up at the same position in the overview ruler
    "editor.overviewRulerLanes": 3,

    // Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'
    "editor.cursorBlinking": "blink",

    // Zoom the font of the editor when using mouse wheel and holding Ctrl
    "editor.mouseWheelZoom": false,

    // Controls the cursor style, accepted values are 'block', 'line' and 'underline'
    "editor.cursorStyle": "line",

    // Enables font ligatures
    "editor.fontLigatures": false,

    // Controls if the cursor should be hidden in the overview ruler.
    "editor.hideCursorInOverviewRuler": false,

    // Controls how the editor should render whitespace characters, posibilties are 'none', 'boundary', and 'all'. The 'boundary' option does not render single spaces between words.
    "editor.renderWhitespace": "none",

    // Controls whether the editor should render control characters
    "editor.renderControlCharacters": false,

    // Controls whether the editor should render indent guides
    "editor.renderIndentGuides": false,

    // Controls whether the editor should render the current line highlight
    "editor.renderLineHighlight": true,

    // Controls if the editor shows code lenses
    "editor.codeLens": true,

    // Controls whether the editor has code folding enabled
    "editor.folding": true,

    // Inserting and deleting whitespace follows tab stops
    "editor.useTabStops": true,

    // Remove trailing auto inserted whitespace
    "editor.trimAutoWhitespace": true,

    // Keep peek editors open even when double clicking their content or when hitting Escape.
    "editor.stablePeek": false,

    // Controls if the diff editor shows the diff side by side or inline
    "diffEditor.renderSideBySide": true,

    // Controls if the diff editor shows changes in leading or trailing whitespace as diffs
    "diffEditor.ignoreTrimWhitespace": true,

    // Controls if the Linux primary clipboard should be supported.
    "editor.selectionClipboard": true,

// Emmet

    // When enabled, emmet abbreviations are expanded when pressing TAB.
    "emmet.triggerExpansionOnTab": true,

    // Preferences used to modify behavior of some actions and resolvers of Emmet.
    "emmet.preferences": {},

    // Define profile for specified syntax or use your own profile with specific rules.
    "emmet.syntaxProfiles": {},

    // An array of languages where emmet abbreviations should not be expanded.
    "emmet.excludeLanguages": [],

// Workbench

    // Controls if opened editors should show in tabs or not.
    "workbench.editor.showTabs": true,

    // Controls if opened editors should show with an icon or not. This requires an icon theme to be enabled as well.
    "workbench.editor.showIcons": true,

    // Controls if opened editors show as preview. Preview editors are reused until they are kept (e.g. via double click or editing).
    "workbench.editor.enablePreview": true,

    // Controls if opened editors from Quick Open show as preview. Preview editors are reused until they are kept (e.g. via double click or editing).
    "workbench.editor.enablePreviewFromQuickOpen": true,

    // Controls where editors open. Select 'left' or 'right' to open editors to the left or right of the current active one. Select 'first' or 'last' to open editors independently from the currently active one.
    "workbench.editor.openPositioning": "right",

    // Controls if Quick Open should close automatically once it loses focus.
    "workbench.quickOpen.closeOnFocusLost": true,

    // Controls if opening settings also opens an editor showing all default settings.
    "workbench.settings.openDefaultSettings": true,

// Window

    // When enabled, will open files in a new window instead of reusing an existing instance.
    "window.openFilesInNewWindow": true,

    // Controls how folders are being reopened after a restart. Select 'none' to never reopen a folder, 'one' to reopen the last folder you worked on or 'all' to reopen all folders of your last session.
    "window.reopenFolders": "one",

    // Controls if a window should restore to full screen mode if it was exited in full screen mode.
    "window.restoreFullscreen": false,

    // Adjust the zoom level of the window. The original size is 0 and each increment above (e.g. 1) or below (e.g. -1) represents zooming 20% larger or smaller. You can also enter decimals to adjust the zoom level with a finer granularity.
    "window.zoomLevel": 0,

// Files

    // Configure glob patterns for excluding files and folders.
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/.DS_Store": true
    },

    // Configure file associations to languages (e.g. "*.extension": "html"). These have precedence over the default associations of the languages installed.
    "files.associations": {},

    // The default character set encoding to use when reading and writing files.
    "files.encoding": "utf8",

    // The default end of line character.
    "files.eol": "\n",

    // When enabled, will trim trailing whitespace when you save a file.
    "files.trimTrailingWhitespace": false,

    // Controls auto save of dirty files. Accepted values:  "off", "afterDelay", "onFocusChange" (editor loses focus), "onWindowChange" (window loses focus). If set to "afterDelay", you can configure the delay in "files.autoSaveDelay".
    "files.autoSave": "off",

    // Controls the delay in ms after which a dirty file is saved automatically. Only applies when "files.autoSave" is set to "afterDelay"
    "files.autoSaveDelay": 1000,

    // Configure glob patterns of file paths to exclude from file watching. Changing this setting requires a restart. When you experience Code consuming lots of cpu time on startup, you can exclude large folders to reduce the initial load.
    "files.watcherExclude": {
        "**/.git/objects/**": true,
        "**/node_modules/**": true
    },

    // Format a file on save. A formatter must be available, the file must not be auto-saved, and editor must not be shutting down.
    "editor.formatOnSave": false,

// File Explorer

    // Number of editors shown in the Open Editors pane. Set it to 0 to hide the pane.
    "explorer.openEditors.visible": 9,

    // Controls if the height of the open editors section should adapt dynamically to the number of elements or not.
    "explorer.openEditors.dynamicHeight": true,

    // Controls if the explorer should automatically reveal files when opening them.
    "explorer.autoReveal": true,

    // Controls if the explorer should allow to move files and folders via drag and drop.
    "explorer.enableDragAndDrop": true,

// Search

    // Configure glob patterns for excluding files and folders in searches. Inherits all glob patterns from the files.exclude setting.
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true
    },

    // Configure to include results from a global symbol search in the file results for Quick Open.
    "search.quickOpen.includeSymbols": false,

// Git

    // Is git enabled
    "git.enabled": true,

    // Path to the git executable
    "git.path": null,

    // Whether auto refreshing is enabled
    "git.autorefresh": true,

    // Whether auto fetching is enabled.
    "git.autofetch": true,

    // Whether long commit messages should be warned about.
    "git.enableLongCommitWarning": true,

    // Always allow large repositories to be managed by Code.
    "git.allowLargeRepositories": false,

    // Confirm before synchronizing git repositories.
    "git.confirmSync": false,

    // Controls the git badge counter.
    "git.countBadge": "all",

// HTTP

    // The proxy setting to use. If not set will be taken from the http_proxy and https_proxy environment variables
    "http.proxy": "",

    // Whether the proxy server certificate should be verified against the list of supplied CAs.
    "http.proxyStrictSSL": true,

    // The value to send as the 'Proxy-Authorization' header for every network request.
    "http.proxyAuthorization": null,

// Update

    // Configure whether you receive automatic updates from an update channel. Requires a restart after change.
    "update.channel": "default",

// CSS

    // Controls CSS validation and problem severities.

    // Enables or disables all validations
    "css.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "css.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "css.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "css.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "css.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "css.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "css.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "css.lint.universalSelector": "ignore",

    // No unit for zero needed
    "css.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "css.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "css.lint.hexColorLength": "error",

    // Invalid number of parameters
    "css.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "css.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "css.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "css.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "css.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "css.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "css.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "css.lint.idSelector": "ignore",

// SCSS (Sass)

    // Controls SCSS validation and problem severities.

    // Enables or disables all validations
    "scss.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "scss.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "scss.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "scss.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "scss.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "scss.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "scss.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "scss.lint.universalSelector": "ignore",

    // No unit for zero needed
    "scss.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "scss.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "scss.lint.hexColorLength": "error",

    // Invalid number of parameters
    "scss.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "scss.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "scss.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "scss.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "scss.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "scss.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "scss.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "scss.lint.idSelector": "ignore",

// LESS

    // Controls LESS validation and problem severities.

    // Enables or disables all validations
    "less.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "less.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "less.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "less.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "less.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "less.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "less.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "less.lint.universalSelector": "ignore",

    // No unit for zero needed
    "less.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "less.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "less.lint.hexColorLength": "error",

    // Invalid number of parameters
    "less.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "less.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "less.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "less.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "less.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "less.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "less.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "less.lint.idSelector": "ignore",

// HTML

    // Maximum amount of characters per line (0 = disable).
    "html.format.wrapLineLength": 120,

    // List of tags, comma separated, that shouldn't be reformatted. 'null' defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content.
    "html.format.unformatted": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, script, select, small, span, strong, sub, sup, textarea, tt, var",

    // Indent <head> and <body> sections.
    "html.format.indentInnerHtml": false,

    // Whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.
    "html.format.preserveNewLines": true,

    // Maximum number of line breaks to be preserved in one chunk. Use 'null' for unlimited.
    "html.format.maxPreserveNewLines": null,

    // Format and indent {{#foo}} and {{/foo}}.
    "html.format.indentHandlebars": false,

    // End with a newline.
    "html.format.endWithNewline": false,

    // List of tags, comma separated, that should have an extra newline before them. 'null' defaults to "head, body, /html".
    "html.format.extraLiners": "head, body, /html",

    // Configures if the built-in HTML language support suggests Angular V1 tags and properties.
    "html.suggest.angular1": true,

    // Configures if the built-in HTML language support suggests Ionic tags, properties and values.
    "html.suggest.ionic": true,

    // Configures if the built-in HTML language support suggests HTML5 tags, properties and values.
    "html.suggest.html5": true,

// JSON

    // Associate schemas to JSON files in the current project
    "json.schemas": [],

// Markdown

    // A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\' need to be written as '\\'.
    "markdown.styles": [],

// PHP

    // Whether php validation is enabled or not.
    "php.validate.enable": true,

    // Points to the php executable.
    "php.validate.executablePath": null,

    // Whether the linter is run on save or on type.
    "php.validate.run": "onSave",

// TypeScript

    // Specifies the folder path containing the tsserver and lib*.d.ts files to use.
    "typescript.tsdk": null,

    // Check if a TypeScript version is available in the workspace
    "typescript.check.workspaceVersion": true,

    // Check if a global install TypeScript compiler (e.g. tsc) differs from the used TypeScript language service.
    "typescript.check.tscVersion": true,

    // Enables tracing of messages send to the TS server
    "typescript.tsserver.trace": "off",

    // Enables experimental auto build. Requires 1.9 dev or 2.x tsserver version and a restart of VS Code after changing it.
    "typescript.tsserver.experimentalAutoBuild": false,

    // Complete functions with their parameter signature.
    "typescript.useCodeSnippetsOnMethodSuggest": false,

    // Enable / disable TypeScript validation
    "typescript.validate.enable": true,

    // Defines space handling after a comma delimiter
    "typescript.format.insertSpaceAfterCommaDelimiter": true,

    //  Defines space handling after a semicolon in a for statement
    "typescript.format.insertSpaceAfterSemicolonInForStatements": true,

    // Defines space handling after a binary operator
    "typescript.format.insertSpaceBeforeAndAfterBinaryOperators": true,

    // Defines space handling after keywords in control flow statement
    "typescript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,

    // Defines space handling after function keyword for anonymous functions
    "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

    // Defines space handling after opening and before closing non empty parenthesis
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,

    // Defines space handling after opening and before closing non empty brackets
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,

    // Defines whether an open brace is put onto a new line for functions or not
    "typescript.format.placeOpenBraceOnNewLineForFunctions": false,

    // Defines whether an open brace is put onto a new line for control blocks or not
    "typescript.format.placeOpenBraceOnNewLineForControlBlocks": false,

    // Enable / disable JavaScript validation
    "javascript.validate.enable": true,

    // Defines space handling after a comma delimiter
    "javascript.format.insertSpaceAfterCommaDelimiter": true,

    //  Defines space handling after a semicolon in a for statement
    "javascript.format.insertSpaceAfterSemicolonInForStatements": true,

    // Defines space handling after a binary operator
    "javascript.format.insertSpaceBeforeAndAfterBinaryOperators": true,

    // Defines space handling after keywords in control flow statement
    "javascript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,

    // Defines space handling after function keyword for anonymous functions
    "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

    // Defines space handling after opening and before closing non empty parenthesis
    "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,

    // Defines space handling after opening and before closing non empty brackets
    "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,

    // Defines whether an open brace is put onto a new line for functions or not
    "javascript.format.placeOpenBraceOnNewLineForFunctions": false,

    // Defines whether an open brace is put onto a new line for control blocks or not
    "javascript.format.placeOpenBraceOnNewLineForControlBlocks": false,

// Extensions

    // Automatically update extensions
    "extensions.autoUpdate": false,

// External Terminal

    // Customizes which terminal to run on Windows.
    "terminal.external.windowsExec": "%COMSPEC%",

    // Customizes which terminal application to run on OS X.
    "terminal.external.osxExec": "Terminal.app",

    // Customizes which terminal to run on Linux.
    "terminal.external.linuxExec": "x-terminal-emulator",

// Integrated Terminal

    // The path of the shell that the terminal uses on Linux.
    "terminal.integrated.shell.linux": "/bin/bash",

    // The command line arguments to use when on the Linux terminal.
    "terminal.integrated.shellArgs.linux": [],

    // The path of the shell that the terminal uses on OS X.
    "terminal.integrated.shell.osx": "/bin/bash",

    // The command line arguments to use when on the OS X terminal.
    "terminal.integrated.shellArgs.osx": [],

    // The path of the shell that the terminal uses on Windows. When using shells shipped with Windows (cmd, PowerShell or Bash on Ubuntu), prefer C:\Windows\sysnative over C:\Windows\System32 to use the 64-bit versions.
    "terminal.integrated.shell.windows": "cmd.exe",

    // Controls the font family of the terminal, this defaults to editor.fontFamily's value.
    "terminal.integrated.fontFamily": "",

    // Controls whether font ligatures are enabled in the terminal.
    "terminal.integrated.fontLigatures": false,

    // Controls the font size in pixels of the terminal, this defaults to editor.fontSize's value.
    "terminal.integrated.fontSize": 0,

    // Controls the line height of the terminal, this number is multipled by the terminal font size to get the actual line-height in pixels.
    "terminal.integrated.lineHeight": 1.2,

    // Controls whether the terminal cursor blinks.
    "terminal.integrated.cursorBlinking": false,

    // Controls whether locale variables are set at startup of the terminal, this defaults to true on OS X, false on other platforms.
    "terminal.integrated.setLocaleVariables": false,

    // A set of command IDs whose keybindings will not be sent to the shell and instead always be handled by Code. This allows the use of keybindings that would normally be consumed by the shell to act the same as when the terminal is not focused, for example ctrl+p to launch Quick Open.
    "terminal.integrated.commandsToSkipShell": [
        "editor.action.toggleTabFocusMode",
        "workbench.action.quickOpen",
        "workbench.action.showCommands",
        "workbench.action.terminal.clear",
        "workbench.action.terminal.copySelection",
        "workbench.action.terminal.focus",
        "workbench.action.terminal.focusNext",
        "workbench.action.terminal.focusPrevious",
        "workbench.action.terminal.kill",
        "workbench.action.terminal.new",
        "workbench.action.terminal.paste",
        "workbench.action.terminal.runSelectedText",
        "workbench.action.terminal.scrollDown",
        "workbench.action.terminal.scrollDownPage",
        "workbench.action.terminal.scrollUp",
        "workbench.action.terminal.scrollUpPage",
        "workbench.action.terminal.toggleTerminal"
    ],

// Problems View

    // Controls if Problems view should automatically reveal files when opening them
    "problems.autoReveal": true,

// Telemetry

    // Enable usage data and errors to be sent to Microsoft.
    "telemetry.enableTelemetry": true,

    // Enable crash reports to be sent to Microsoft.
    // This option requires restart to take effect.
    "telemetry.enableCrashReporter": true,

// CMake Tools configuration

    // The directory where CMake build files will go
    "cmake.buildDirectory": "${workspaceRoot}/build",

    // The directory where CMake installed files will go.
    "cmake.installPrefix": null,

    // The directory of the root CMakeLists.txt file
    "cmake.sourceDirectory": "${workspaceRoot}",

    // Save open files before building
    "cmake.saveBeforeBuild": true,

    // Clear build output before each build
    "cmake.clearOutputBeforeBuild": true,

    // CMake variables to set on the command line
    "cmake.configureSettings": {},

    // The default build type on first configuration
    "cmake.initialBuildType": "Debug",

    // The preferred CMake generator(s) to use when configuring (tried in order of listing)
    "cmake.preferredGenerators": [
        "Ninja",
        "Unix Makefiles",
        "MinGW Makefiles",
        "NMake Makefiles"
    ],

    // The number of parallel build jobs. Use zero to automatically detect the number of CPUs.
    "cmake.parallelJobs": 0,

    // The number of parallel test jobs. Use zero to use the value of cmake.parallelJobs
    "cmake.ctest.parallelJobs": 0,

    // Parse compiler output for warnings and errors
    "cmake.parseBuildDiagnostics": true,

    // The path to CMake generator executable
    "cmake.cmakePath": "cmake",

    // The base debug configuration to use when debugging a target
    "cmake.debugConfig": {
        "all": {
            "request": "launch",
            "cwd": "${workspaceRoot}",
            "linux": {
                "MIMode": "gdb"
            },
            "osx": {
                "MIMode": "lldb"
            },
            "windows": {
                "MIMode": "gdb"
            }
        }
    },

    // Enable experimental target debugging features
    "cmake.experimental.enableTargetDebugging": false,

// Rusty Code configuration

    // Specifies path to Racer binary if it's not in PATH
    "rust.racerPath": null,

    // Specifies path to Rustfmt binary if it's not in PATH
    "rust.rustfmtPath": null,

    // Specifies path to Rustsym binary if it's not in PATH
    "rust.rustsymPath": null,

    // Specifies path to /src directory of local copy of Rust sources
    "rust.rustLangSrcPath": null,

    // Specifies path to Cargo binary if it's not in PATH
    "rust.cargoPath": null,

    // Specifies path to home directory of Cargo. Mostly needed for working with custom installations of Rust via rustup or multirust.
    "rust.cargoHomePath": null,

    // Turn on/off autoformatting file on save
    "rust.formatOnSave": false,

    // Turn on/off autochecking file on save using cargo check
    "rust.checkOnSave": false,

    // Choose between check, check-lib, clippy and build to lint
    "rust.checkWith": "check",

    // Enable the use of JSON errors (requires Rust 1.7+). Note: This is an unstable feature of Rust and is still in the process of being stablised
    "rust.useJsonErrors": false,

    // Use the new Rust error format (RUST_NEW_ERROR_FORMAT=true). Note: This flag is mutually exclusive with `useJsonErrors`.
    "rust.useNewErrorFormat": false,

// C/C++ Configuration

    // The full path of the clang-format executable.
    "C_Cpp.clang_format_path": null,

    // Coding style, currently supports: Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit. Use "file" to load the style from a .clang-format file in the current or parent directory. Use "{key: value, ...}" to set specific parameters, e.g.: "{ BasedOnStyle: LLVM, IndentWidth: 8 }"
    "C_Cpp.clang_format_style": "file",

    // Name of the predefined style used as a fallback in case clang-format is invoked with style "file" but the .clang-format file is not found. Possible values are Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit, or none.
    "C_Cpp.clang_format_fallbackStyle": "Visual Studio",

    // If set, overrides the include sorting behavior determined by the SortIncludes parameter.
    "C_Cpp.clang_format_sortIncludes": false,

    // Enable clang-format on save.
    "C_Cpp.clang_format_formatOnSave": false,

    // Controls auto completion for C/C++ code. 'Default' uses an experimental recursive directory tag parser (as of right now). 'Disabled' uses the word based completion provided by Visual Studio Code.
    "C_Cpp.autocomplete": "Default"

}

and here's settings:

// Place your settings in this file to overwrite default and user settings.
{

    "files.exclude": {
        "**/ui5": true
        ,"**/.idea": true
        ,"**/images": true
        ,"**/.imgs": true
        ,"**/nbproject": true

    }

}
RobertoMalatesta commented 7 years ago

Here's user: settings apart from default:

// Place your settings in this file to overwrite the default settings
{
      "rust.racerPath": "/home/robi/.cargo/bin" , // Specifies path to Racer binary if it's not in PATH
    "typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib/",
    "typescript.tsserver.experimentalAutoBuild": true,
    "typescript.check.tscVersion": false
}

TS is 2.0.3

RobertoMalatesta commented 7 years ago

@dbaeumer commenting out tsdk line gives the warning "VSC ships with TSC 2.03..." but using the embedded one shows the same problem. Nor adding "files.autoSave": "afterDelay", leads to a different result. Extensions should be innocent since VSC showed the same behavior 8 days ago when it was flat clean.

dbaeumer commented 7 years ago

@RobertoMalatesta ok. I was able to reproduce this on a dedicated Linux machine with the build you have installed. May be I was mistaken with the commit. I triggered a new build and I couldn't reproduce it with that. Which package do you normally install ? Deb64 or the zip?

RobertoMalatesta commented 7 years ago

The tar.gz. BTW: it could be useful to have a direct ftp link to releases to ease a wget of the nightly. Currently I have to do a wget https://go.microsoft.com/fwlink/?LinkId=723968 and this does not preserve the name. With direct links I can automate the (daily) download & install of the latest version, and an archive of older versions could be useful to spot items like this.

-R

dbaeumer commented 7 years ago

Here is the link to the latest (not official released though). It is: https://az764295.vo.msecnd.net/insider/adb9c231677a914df9338475950832a9f1f7ffc5/code-insider-1.6.0-1475156505_amd64.tar.gz

Can you let me know if this works for you ?

RobertoMalatesta commented 7 years ago

5 mins.

RobertoMalatesta commented 7 years ago

Same problem. no_error_19 no_error_18

dbaeumer commented 7 years ago

There is something really wired. We can't reproduce this. Can you enable the following setting please: "typescript.tsserver.trace": "verbose" and open the output panel and switch to the TypeScript channel. Can you provide me with the output you see.

And could you try to use once the bundle TS 2.0.3 version we now ship by disableing your setting "typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib/"

dbaeumer commented 7 years ago

And would it be possible to share your whole workspace? This would help to understand the problem. In addition I would like to ask you to do the following:

{
    "compilerOptions": {
        "module": "commonjs"
    }
}
class A {

}

this line will produce errors.
RobertoMalatesta commented 7 years ago

Still no warning in 1.6: no_error_21

1.5 reds out the line correctly: no_error_22

RobertoMalatesta commented 7 years ago

@dbaeumer if it can be of help I have seen the same behavior in 1.5 sometimes, and more frequently, while being in continuous build, the opposite behavior of VSC intellisense marking lots of errors while tsc output was clean. Closing/reopening files and/or stopping and restarting continuous build always fixed the issue.

dbaeumer commented 7 years ago

Wow, I am a little lost. Can you enable tracing in the litte test workspace via the setting "typescript.tsserver.trace": "verbose" and provide me with the output of the TypeScript channel (Ctrl+Shift+U -> TypeScript).

Do you have any special setup with your file system on out Linux box.

And what happens if you trigger code complete in these files. Is code complete working. Since that didn't work for me either when I saw the broken bahavior

RobertoMalatesta commented 7 years ago

@dbaeumer I was doing it, when I did another try comenting out the line "typescript.tsserver.experimentalAutoBuild": true, It seems to be this. See it enabled (no errors) no_error_23 And disabled (errors correctly pop out): no_error_26

I'll have a look at the TS channel but I think it's that.

--R

PS: Ctrl-Shift-U not bound to anything it seems... is there a menu option?

dbaeumer commented 7 years ago

@RobertoMalatesta yes, that totally explains it. Neither version do have experimental auto build support. This requires a very special version of the TypeScript tsserver. When experimental auto build is on then VS Code relies on the tsserver pushing errors. When it is off VS Code has to pull for errors. So in your case VS Code was never pulling and the server never pushed.

I will make sure that we remove the setting from the code complete so that no one else enables it :-)

Thanks a lot for your patience and help with that issue.

RobertoMalatesta commented 7 years ago

Neither version do have experimental auto build support. This requires a very special version of the TypeScript tsserver. When experimental auto build is on then VS Code relies on the tsserver pushing errors. When it is off VS Code has to pull for errors.

Will it be available in the Open Source version of Typescript?

When it is off VS Code has to pull for errors. So in your case VS Code was never pulling and the server never pushed.

That could explain the fact that it gave errors on 1.5 as well, albeit randomly.

--R

dbaeumer commented 7 years ago

Will it be available in the Open Source version of Typescript?

The TS team is working on it. But it is still some time out. Not a trivial problem.

@hoisel are you still seeing issues. If not I will close the issue.

dbaeumer commented 7 years ago

Closing the issue. @hoisel please ping if you still see problems.