我创建了一个自定义的可搜索下拉列表。对于这个角度组件,它实现了 ControlValueAccessor,并且还获得了 NG_VALUE_ACCESSOR、ControlContainer 提供程序。因此,该组件可以是父窗体的一部分。
为了进行测试,我已经模拟了 ControlContainer 的提供者。我还在线搜索了如何模拟 NG_VALUE_ACCESSOR,但没有找到任何可行的方法。
searchable-dropdown.component.ts:
import {
  Component,
  OnInit,
  ViewChild,
  HostListener,
  ElementRef,
  Input,
  forwardRef,
  SkipSelf,
  OnChanges,
  SimpleChanges
} from '@angular/core';
import { ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { controlContainerFactory } from './helper';
@Component({
  selector: 'app-searchable-dropdown',
  templateUrl: './searchable-dropdown.component.html',
  styleUrls: ['./searchable-dropdown.component.css'],
  providers: [{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => SearchableDropdownComponent) }],
  viewProviders: [
    { provide: ControlContainer, useFactory: controlContainerFactory, deps: [[new SkipSelf(), ControlContainer]] }
  ]
})
export class SearchableDropdownComponent implements OnInit, ControlValueAccessor, OnChanges {
  @Input() …Run Code Online (Sandbox Code Playgroud) 我在以下位置设置了自定义片段javascript.json:
"Node regular import": {
    "prefix": "creq",
    "body": ["const ${2:module} = require('$1')"],
    "description": "Node regular import"
},
Run Code Online (Sandbox Code Playgroud)
当我输入creq然后按时它会起作用tab:
但是,我希望此代码片段自动完成功能也能触发 vscode 的 Intellisense。现在,我需要按ctrl+space才能得到我想要的:
有什么方法可以配置 vscode 这样我就不需要每次都按Ctrl+了?Space
Jupyter笔记本的自动完成似乎有效,但不知何故,它将显示该方法的重复选项.例如下面:

对于每个可能的选项,下拉菜单将显示2个相同的选项.为什么会发生这种情况以及如何解决?