0.2.24 • Published 9 months ago

common-intellisense v0.2.24

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

This plugin can provide a super powerful smart prompt function, including properties, events, slots and corresponding annotations and types, methods on instances, etc. It supports multiple UI libraries, taking your development efficiency to the next level.

🛠️️ How to use

Install the supported ui component library in your project and install the plug-in. If the plug-in does not work, you can restart vscode. If you encounter problems, you can open an issue.

🍬 Currently supported

  • vant 4
  • element 2
  • element-plus 2
  • antd 1、4、5
  • antdv 1、3、4
  • antd-mobile 5
  • varlet 2、3
  • naive 2
  • primevue 3、4
  • quasar 2
  • @nextui-org/react 2
  • @nuxt/ui 2
  • @nuxt/ui-pro 1
  • vuetify 3
  • radix-vue 1
  • next-ui 2
  • arco-design/react 2
  • arco-design/vue 2
  • uview-ui 1、2
  • uview-plus 3
  • taro 3
  • shacn-svelte 0
  • bits-ui 0
  • material-ui 5
  • shadcn-ui 0
  • tiny-vue 3
  • nutui 4
  • uview-plus 1
  • tdesign-vue-next 1
  • tdesign-mobile-vue 1
  • tdesign-react 1
  • tdesign-miniprogram 1
  • @headlessui/vue 1
  • @headlessui/react 2
  • @chakraUi/react 2

antdv demo

varlet demo

vant demo

antd demo

element-ui demo

naive-ui demo

nuxt-ui demo

vuetify demo

radix-vue demo

next-ui demo

arco-design/react demo

arco-design/vue demo

shadcn-svelte demo

bits-ui demo

Select the specified UI library (resolve multiple UI library naming conflicts)

  • cmd+shift+p -> Select Specify the UI library you need to prompt

configuration

{
  "common-intellisense.showSlots": {
    "type": "boolean",
    "default": true,
    "description": "Whether to show the slots on template completion."
  },
  "common-intellisense.alias": {
    "type": "object",
    "default": {},
    "description": "If you need to integrate the supported ui library, the secondary encapsulated library, and the prompt to integrate a certain version of the original ui, you can use the alias { \"@xxx/element\": \"elementUi2\" }"
  },
  "common-intellisense.remoteUris": {
    "type": "array",
    "default": [],
    "description": "Remote URIs"
  },
  "common-intellisense.remoteNpmUris": {
    "type": "array",
    "default": [],
    "description": "Remote NPM URIs"
  },
  "common-intellisense.localUris": {
    "type": "array",
    "default": [],
    "description": "Local URIs"
  }
}

Explain Configuration

  • remoteUris: When you deploy the index.cjs configuration file to an online address
  • remoteNpmUris:When you deploy the index.cjs configuration file to npm, you only need to provide the package name instead of the full URL.
  • localUris:When you want to test your configuration, you can read the generated index.cjs locally

How to Contribute

This repository is maintained by individuals, and needs to be updated with some UI libraries frequently. If you are interested in contributing, you can submit a PR to the corresponding version of the corresponding UI library under @common-intellisense or provide some new UI libraries or some new features. Submissions are welcome. issue

How to support private libraries

If your project is a private library, you can also refer to vuetify, provide an exported uri, if your uri is an accessible packaged dist/index.cjs address, in vscode common-intellisense.remoteUris, configure this link, the plug-in will request this link and get the corresponding prompt information. You can also directly configure an npm package name (@xx/yy-ui), configure it in common-intellisense.remoteNpmUris, so that the plug-in will request the dist/index.cjs produced by the npm package and get the corresponding prompt information.

How to configure the component's JSON

{
  "name": "componentName like Button.Grop or VButton(Big CamelCase Format)",
  "props": {
    "attributeName": {
      "default": "defaultValue",
      "value": "if have will generate attribute with=\"value\"",
      "type": "if you use -> boolean / top / end / bottom / start will have option when create attribute",
      "description": "en description",
      "description_zh": "zh description",
      "required": true, // if with true when select component will auto has this attribute
      "foreach": false // it only work with vue, when you want generate with v-for
    }
  },
  "link": "en link to document",
  "link_zh": "zh link to document",
  "typeDetail": { // Used to supplement other types of descriptions in the attribute dependencies
    "AnchorItem": [ // if name startsWith '$' like "$AnchorItem", will be type AnchorItem = 'x' | 'y'
      {
        "name": "key",
        "description": "Unique ID",
        "type": "string | number"
      }
    ]
  },
  "events": [
    {
      "name": "close",
      "description": "Emitted when close icon is clicked.",
      "description_zh": "单击关闭图标时发出。",
      "params": "[MouseEvent]"
    }
  ],
  "exposed": [ // when use ref get vm, vm.value or vm.current will get this hints
    {
      "name": "[string]",
      "description": "MISSING DESCRIPTION (edit in github)",
      "description_zh": "MISSING DESCRIPTION (edit in github)",
      "detail": "any"
    }
  ],
  "suggestions": [ // Some components are combined,when use button-group, inner tip will this `button` reminder will be brought forward, if this components with only one suggestions, it will select button-group auto create button
    "v-alert-title"
  ]
}

How to configure custom instructions

:coffee:

buy me a cup of coffee

License

MIT

Sponsors