Intellij IDEA
IDE | for |
---|---|
Intellij IDEA | JVM, Java, Kotlin |
WebStorm | Web, NodeJS, JS, TS |
PyCharm | Python |
GoLand | Go |
CLion | C/C++ |
Rider | .NET |
DataGrip | Database |
RubyMine | Ruby |
AppCode | iOS, macOS |
PHPStorm | PHP |
Android Studio | Android |
info
- GRPC HTTP 客户端支持 Metadata IDEA-287369
WebStorm
- NPM 工作空间补全有问题 WEB-50806
- c8 Coverage WEB-45069
- AVA Test Run Configuration Generator
- 推荐 vitest
插件
- devkanro/intellij-protobuf-plugin 比官方 pb 插件功能更多
- 官方 gRPC 插件 16889-grpc
- JetBrains/intellij-plugins
- 官方内置插件源码
特殊正则替换语法
syntax | for |
---|---|
\l | 小写下一个字符 |
\u | 大写下一个字符 |
\L | 小写直到 \E 或 替换结束 |
\U | 大写直到 \E 或 替换结束 |
\E | \U, \L 结束标志 |
实现自定义语言插件
- Custom Language Support Tutorial
- Language and File Type
- Syntax Highlighter and Color Settings Page
- Annotator
- Line Marker Provider
- Completion Contributor
- Reference Contributor
- Find Usages Provider
- Folding Builder
- Go To Symbol Contributor
- Structure View Factory
- Formatter
- Code Style Settings
- Commenter
- Quick Fix
Grammar-Kit
- JetBrains/Grammar-Kit
- BNF 基于 PEG
- 使用 JFlex 做词法解析
- Antlr 生成 Psi
- antlr/jetbrains
- 提供 Antlr 到 Psi 的适配
- antlr/intellij-plugin-v4
- Antlr 的插件是基于 Antlr 实现的
- antlr/jetbrains
Diff
idea diff path1 path2 path3
Index
DIR=$PWD/data
mkdir -p $DIR/{ide-system,ide-config,ide-log}
cp /Applications/apps/WebStorm/ch-0/231.9011.35/WebStorm.app/Contents/bin/idea.properties $DIR/ide.properties
cat << EOF >> $DIR/ide.properties
idea.system.path=$DIR/ide-system
idea.config.path=$DIR/ide-config
idea.log.path=$DIR/ide-log
EOF
export WEBSTORM_PROPERTIES=$DIR/ide.properties
# --compression=xz, gzip, plain
webstorm dump-shared-index project --output=$DIR/generate-output --tmp=$DIR/temp --project-dir=$HOME/gits/wenerme/wode --project-id=wode --commit=$(git -C ~/gits/wenerme/wode rev-parse HEAD)
ls $DIR/generate-output
# shared-index-project-<name>-<hash>.ijx.xz
# shared-index-project-<name>-<hash>.metadata.json
# shared-index-project-<name>-<hash>.sha256
# e.g. ~/indexes/project/<project name>/<VCS hash>/share
SHR=$HOME/temp/jb/indexes/project/wode/$(git -C ~/gits/wenerme/wode rev-parse HEAD)/share
mkdir -p $SHR/indexes
cp $DIR/generate-output/*{.ijx.xz,.metadata.json,.sha256} $SHR/indexes
./bin/cdn-layout-tool --indexes-dir=$SHR/indexes --url=http://127.0.0.1:8000/indexes
ls $SHR/indexes/project
cd $SHR
server
$PROJECT_DIR/intellij.yaml
sharedIndex:
project:
- url: http://127.0.0.1:8000/indexes/